Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django中用户的默认类型是什么?_Python_Mysql_Django_Database_Database Migration - Fatal编程技术网

Python Django中用户的默认类型是什么?

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

我有一个MySQL数据库对象,它存储用户计划在某个日期参加的音乐会。由于每个concert条目都需要与一个用户关联,所以我为用户添加了一个外键字段作为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)

当我尝试迁移到DB时,我收到一条消息说:
您正在尝试添加一个不可为空的字段“user”,以与默认值一致本质上是说已经填充的行需要有一个值。我发现这似乎解决了一个类似的问题,但解决方案中建议的默认值是charfield,我认为这在这种情况下并不适用。如何设置用户对象的默认值?

您可以使用
null=True

user = models.ForeignKey(User, null=True)

虽然如果您查看db实际模型,您无法看到实际的外键,但当您将
模型放入时。在您的模型中,您可以在db中看到带有引用的
用户id
,但所需的关系存在,因此您可以将其设为
null=True
作为默认值。

传递一个整数;在实际表中,该列是用户表的外键。