0

我有一个不寻常的案例。在我的 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

在不创建事件元素的情况下解决此问题的任何想法?

4

2 回答 2

2

看来您想创建一个User而不给出hosting值。您可以通过添加blank=True, null=True到该字段来做到这一点:

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

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

于 2012-07-18T07:39:59.780 回答
1

你搞砸了你的关系;他们应该在Event,指向User

于 2012-07-18T07:41:38.013 回答