django完整性错误
问题描述:
我有一个不寻常的情况。在我的models.py中,我有一个Event元素和两个不同类型的用户元素,如下所示。django完整性错误
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元素吗?
答
你对你的关系进行了愚蠢的处理;他们应该在Event
,指向User
。
+0
我认为他们是正确的,因为他们是......用户可以主持或参加多个活动;一个事件将有users_hosting它或users_attending它... – Stefano 2012-07-18 11:52:36
在相关说明中,您的'related_name's在Python中看起来很丑陋:它们应该都是小写。考虑到它们的含义,我也会将它们复数化(users_attending)或者使用django惯例(user_attending_set) – Stefano 2012-07-18 11:50:29