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

Aar*_*ron 5 python django

Django使用Meta类来获取大量额外的对象信息.但是,它们将此信息存储在对象'_meta'中,该对象通过命名约定是私有的.

整个django管理员(和其他地方)我看到的东西opts = model._meta,然后他们使用像app_label和的各种选项verbose_name.

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

Jas*_*ebb 4

_meta经常使用,到目前为止还没有出现任何问题。你可以在 django 文档中看到他们在这里也使用它的示例,所以我觉得它或多或少可以做。只要小心行事并编写良好的测试,这样您就可以在以后升级 django 版本时知道任何问题。