django完整性错误

时间:2012-07-18 07:37:17

标签: 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')

     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)

在我的views.py中,当我想创建一个用户时,我有以下一些内容:

    user = User()
    user.username = ""
    user.gender = 0
    user.fName = ""
    user.lName = ""
    ....
    user.save

这是我的浏览器对我大吼大叫并说:

完整性错误, list_user.hosting_id可能不是NULL

如果没有在那里创建Event元素,那么解决这个问题的想法是什么?

2 个答案:

答案 0 :(得分:1)

您似乎想要创建User而不给hosting一个值。您可以通过在字段中添加blank=True, null=True来执行此操作:

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

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

答案 1 :(得分:1)

你对你的关系感到茫然;它们应该在Event上,指向User