Python Django中用户的默认类型是什么?
我有一个MySQL数据库对象,它存储用户计划在某个日期参加的音乐会。由于每个concert条目都需要与一个用户关联,所以我为用户添加了一个外键字段作为concert模型的属性。以下是完整的模型:Python Django中用户的默认类型是什么?,python,mysql,django,database,database-migration,Python,Mysql,Django,Database,Database Migration,我有一个MySQL数据库对象,它存储用户计划在某个日期参加的音乐会。由于每个concert条目都需要与一个用户关联,所以我为用户添加了一个外键字段作为concert模型的属性。以下是完整的模型: class Concert(models.Model): user = models.ForeignKey(User, on_delete = models.CASCADE) concert_name = models.CharField(max_length = 120, blank
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)
当我尝试迁移到DB时,我收到一条消息说:
您正在尝试添加一个不可为空的字段“user”,以与默认值一致代码>本质上是说已经填充的行需要有一个值。我发现这似乎解决了一个类似的问题,但解决方案中建议的默认值是charfield,我认为这在这种情况下并不适用。如何设置用户对象的默认值?您可以使用null=True
:
user = models.ForeignKey(User, null=True)
虽然如果您查看db实际模型,您无法看到实际的外键,但当您将模型放入时。在您的模型中,您可以在db中看到带有引用的用户id
,但所需的关系存在,因此您可以将其设为null=True
作为默认值。传递一个整数;在实际表中,该列是用户表的外键。