Skip to main content
 首页 » 编程设计

python之在 django 中为 auth 应用程序创建迁移

2024年08月30日29落叶无声

我需要在 django contrib.auth 应用程序中向组模型添加几个字段:

field_name = models.CharField(...) 
field_name.contribute_to_class(Group, 'field_name') 

我的问题是在使用 South 创建迁移时,因为它们是在 auth 应用程序内的“迁移”目录中创建的,并且由于系统已经在生产中,所以我不允许更改当前的 django 安装服务器以迁移auth。

有谁知道如何创建和加载此类迁移?

预先感谢您的帮助。

请您参考如下方法:

Django 并没有让修改标准模型变得特别容易。我不建议您对 Group 进行子类化,因为获取内置功能来引用新模型非常烦人。

这里通常要做的是创建一个 GroupProfile 模型,它有一个 Group 作为唯一的外键。它可能不优雅,但不会有 fork Django 源代码带来的巨大维护开销。

此外:如果您不能修改服务器上的 Django 代码,您将无法使用原始 SQL 黑客或巧妙的迁移来完成此操作。 South 不会成为问题——问题是 Django ORM 会注意到 SQL 表中存在代码中未指定的字段,这将导致它抛出异常。