Django使用Integer Field作为ForeignKey字段

时间:2016-08-30 21:22:13

标签: python django django-models orm django-admin

为了支持旧(遗留)数据库,我们必须创建一个表,使用整数字段作为外键用户表:这是我们的模型如何:

class UserHistory():
    user_id = models.IntegerField(null=True, blank=True)
    # ..... (other fields) .....

问题是用户表中可能存在也可能不存在用户ID。有没有办法将user_id字段视为用户talbe的外键(如果存在)?因此,我可以在django admin或其他地方播放,而不仅仅是ID。

2 个答案:

答案 0 :(得分:1)

您可以将ForeignKey字段与db_constraint=False一起使用。有关警告,请参阅docs,但遗留无效数据是合理的情况之一。

答案 1 :(得分:0)

向数据库添加第二列,并使用SQL将另一个表中没有相应对象的字段清空。然后在这个新领域定义你的django模型。