Django - 如何在不修改的情况下扩展第三方模型

use*_*880 9 python django model django-models

我想在数据库表中添加一列,但我不想在将来需要/决定升级模块的情况下修改第三方模块.有没有办法在我的代码中添加这个字段,以便在新版本中我不必手动添加字段?

Mat*_*kel 10

您可以使用ModelName.add_to_class(或.contribute_to_class),但如果您已经运行了syncdb,则无法自动添加所需的列.

对于可维护的代码,您可能希望通过在您自己的应用程序中对所需模型进行子类化进行扩展,并使用像south这样的东西来处理数据库迁移,或者只使用OneToOneField,并使用相关模型(如UserProfile是要授权的) .用户).