直接在您的django应用程序中访问._meta是否安全?

时间:2011-03-18 15:14:43

标签: python django

Django使用Meta类来获取许多其他对象信息。但是,它们将此信息存储在对象'_meta'中,该对象通过命名约定是私有的。

遍布django管理员(和其他地方)我看到opts = model._meta之类的内容,然后他们会使用app_labelverbose_name等各种选项。

我是否可以自信地访问._meta并确保它将来不会改变,或者我最好创建一个'accessor'mixin或者在一个地方访问._meta的东西,所以如果它确实改变了我只需要更新一件事吗?

2 个答案:

答案 0 :(得分:4)

我经常使用_meta,到目前为止还没有任何问题。你可以在django文档中看到它们使用它的一个例子here,所以我觉得它或多或少都可以。请小心谨慎并编写好的测试,以便在以后升级django版本时知道任何问题。

答案 1 :(得分:2)

我在几个项目中使用_meta,我想要对api无法提供的信息进行通用访问。我认为你可能大部分时间都可以,因为Django非常稳定。在单元测试中覆盖_meta的使用情况可能是个好主意。