Django相关经理添加

时间:2011-09-13 16:18:18

标签: django foreign-keys django-related-manager

我有一个中间模型,如下 -

class Link_Book_Course(models.Model):
    book = models.ForeignKey(Book)
    course = models.ForeignKey(Course)
    image = models.CharField(max_length = 200, null=True)
    rating = models.CharField(max_length = 200,null=True)
    def __unicode__(self):
        return self.title
    def save(self):
        self.date_created = datetime.now()
        super(Link_Book_Course,self).save()

我已经创建了一本新书和一个新的Link_Book_Course,并试图将该书添加到Link_Book_Course

调用Link_Book_Course newCourseLink并调用图书newBook

我认为这个电话会起作用 -

newCourseLink.book_set.add(newBook)

但是Django抛出一个错误,说newCourseLink没有属性book_set-有人知道为什么吗?

此外,如何将图书添加到newCourseLink

由于

1 个答案:

答案 0 :(得分:0)

您设置关系的方式,每个Link_Book_Course(可怕的名称,BTW)只能有一个书。您无法添加图书,只能通过newCourseLink.book参考该图书。

如果您希望每个LBC都有多本书,那么FK应该从Book到LBC。

评论后编辑中间模型的重点是它的两个FK的每个组合都有一个实例。如果你想要添加新书,你需要新的LBC实例。您可以更改当前LBC仅使用newCourseLink.book = my_new_book引用的图书,但正如我所说,您无法添加一本。