【发布时间】:2016-03-26 12:35:17
【问题描述】:
我有一个 MySQL 数据库对象,用于存储用户计划在某个日期参加的音乐会。由于每个 Concert 条目都需要与一个 User 相关联,因此我为 User 添加了一个外键字段作为 Concert 模型的属性。这是完整的模型:
class Concert(models.Model):
user = models.ForeignKey(User, on_delete = models.CASCADE)
concert_name = models.CharField(max_length = 120, blank = True, null = True)
venue = models.CharField(max_length = 120, blank = True, null = True)
city = models.CharField(max_length = 120, blank = True, null = True)
state = models.CharField(max_length = 120, blank = True, null = True)
country = models.CharField(max_length = 120, blank = True, null = True)
timestamp = models.DateTimeField(auto_now_add = True, auto_now = False)
updated = models.DateTimeField(auto_now_add = False, auto_now = True)
当我尝试迁移到数据库时,我收到一条消息:You are trying to add a non-nullable field 'user' to concert with out a default; 本质上是说已经填充的行需要有一个值。我发现this SO post 似乎正在解决类似的问题,但解决方案中建议的默认值是用于字符域,我认为这在这种情况下并不适用。我应该如何设置 User 对象的默认值?
【问题讨论】:
-
传递一个整数;在实际表中,该列是用户表的外键。
标签: python mysql django database database-migration