我有一个不寻常的案例。在我的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元素,那么解决这个问题的想法是什么?
答案 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
。