开发者

Is it safe to access ._meta directly in your django app?

Django uses Meta class for lots of additional object information. However, they store this information in an object '_meta' which by naming convention is private.

All over the django admin (and other places) I see stuff like opts = model._meta and then they use the various options like app_label and verbose_name.

Can I be confident accessing ._meta and be sure that it will not change in the future, or am I better off crea开发者_StackOverflowting one 'accessor' mixin or something that accesses the ._meta in one spot, so if it ever does change I only have to update one thing?


I use _meta frequently and haven't had any issues so far. You can see in the django documentation an example of them using it too here, so I have felt its more or less ok to do. Just tread carefully and write good tests so you know of any problems when you upgrade your django version later on down the road.


I use _meta in several projects where I want to have generic access to information that's otherwise not provided by the api. I think you're probably okay most of the time as Django is pretty stable. It's probably a good idea to be covering your usage of _meta in your unit tests.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜