【问题标题】:Django: how to trigger creation of ContentTypes for new models?Django:如何为新模型触发 ContentTypes 的创建?
【发布时间】:2011-11-02 11:11:44
【问题描述】:

什么时候会创建新的 ContentType,我如何自己触发呢?

我有很多迁移,创建新模型等。在这一切完成之后,将进行最终的数据迁移,将这些新对象的权限分配给任何已经拥有相关权限的组。 (在此我选择了“相关权限”以在应用程序中有意义)

但是,当我运行该数据迁移时,新创建的模型的 ContentTypes 还不可用。它们是我首先运行所有其他迁移,然后才运行额外的数据迁移。 IE。运行命令两次。但是在我的情况下,制作那个手动补丁是不可行的。

所以我想在运行数据迁移之前为任何新模型手动触发 ContentTypes 的创建。这是怎么做到的?

【问题讨论】:

  • 您是如何获得 ContentTypes 的? get_for_model 正常工作。
  • for ct in orm['contenttypes.contenttype'].objects.filter(app_label='client') 但我想我可以简单地说一下;好建议

标签: django


【解决方案1】:

您应该使用ContentType.objects.get_for_model(),它根据需要创建ContentType 实例(它还添加了一些缓存)。

【讨论】:

  • 这有无法编写一般情况的缺点(“某某应用程序的所有内容类型”),但它确实帮助我解决了这个问题。谢谢
猜你喜欢
  • 2022-10-23
  • 2021-09-24
  • 1970-01-01
  • 1970-01-01
  • 2013-02-11
  • 1970-01-01
  • 2011-01-19
  • 2010-12-14
  • 1970-01-01
相关资源
最近更新 更多