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

时间:2010-08-08 04:58:59

标签: python django django-models model

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

2 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:0)