Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.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_Django_Web Applications - Fatal编程技术网

Python django完整性错误

Python django完整性错误,python,django,web-applications,Python,Django,Web Applications,我有一个不寻常的病例。在我的models.py中,我有一个Event元素和两种不同类型的用户元素,它们引用它,如下所示 class User(models.Model): attending = models.ManyToManyField('Event', related_name='User_attending') hosting = models.ForeignKey('Event', related_name='User_hosting') userna

我有一个不寻常的病例。在我的models.py中,我有一个Event元素和两种不同类型的用户元素,它们引用它,如下所示

class User(models.Model):

     attending = models.ManyToManyField('Event', related_name='User_attending')
     hosting = models.ForeignKey('Event', related_name='User_hosting')

     username = models.CharField(max_length=40)


class Event(models.Model):
     #event title
     title = models.CharField(max_length=200)
     #time created
     created = models.DateField('Date Created',auto_now_add=True)
在my views.py中,当我想要创建用户时,我有以下几点:

    user = User()
    user.username = ""
    user.gender = 0
    user.fName = ""
    user.lName = ""
    ....
    user.save
这就是我的浏览器对我大叫并说:

完整性错误, 列表\u user.hosting\u id不能为空


有没有办法在不创建事件元素的情况下解决这个问题?

您似乎想创建一个
用户
,而不给
宿主
一个值。您可以通过在字段中添加
blank=True、null=True
来完成此操作:

hosting = models.ForeignKey('Event', related_name='User_hosting',
                            blank=True, null=True)

您还需要添加迁移来修复数据库(因为数据库需要允许具有空字段的功能)。我建议为此使用。

您似乎希望创建一个
用户
,而不给
主机
一个值。您可以通过在字段中添加
blank=True、null=True
来完成此操作:

hosting = models.ForeignKey('Event', related_name='User_hosting',
                            blank=True, null=True)

您还需要添加迁移来修复数据库(因为数据库需要允许具有空字段的功能)。我建议为此目的使用。

你搞错了你的关系;他们应该在
事件中
,指向
用户

你搞错了你的关系;它们应该在
事件
上,指向相关注释上的
用户

,您的
相关名称在python中看起来很难看:它们应该都是小写。考虑到它们的含义,我也会将它们(users\u atticing)复数化,或者在相关注释上使用django约定(user\u atticing\u set),在python中,您的
相关名称看起来很难看:它们都应该是小写。考虑到它们的含义,我也会将它们多元化(用户参与)或使用django约定(用户参与集),我认为它们是正确的。。。一个用户可以主持或参加多个活动;一个活动将有用户主持或用户参加…我认为他们是正确的,因为他们是。。。一个用户可以主持或参加多个活动;一个事件将有托管它的用户或参与它的用户…只是想在这里发表评论,因为在您似乎提供了必需的字段,但您仍然收到一个完整性错误,抱怨它不能为null的情况下,也会出现此完整性错误。我最终将问题追溯到我的序列化程序,在那里我忽略了字段。因此,如果上面的答案与您的问题不完全一致,请检查序列化程序。只想在此处发表评论,因为在您似乎提供了必填字段,但仍会收到完整性错误,抱怨它不能为null的情况下,也会出现此完整性错误。我最终将问题追溯到我的序列化程序,在那里我忽略了字段。因此,如果上述答案与您的问题不完全相同,请检查序列化程序。