0

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

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_CoursenewCourseLink并调用 Book newBook

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

newCourseLink.book_set.add(newBook)

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

此外,我怎样才能将书添加到newCourseLink

谢谢

4

1 回答 1

0

你建立关系的方式,每个Link_Book_Course(可怕的名字,顺便说一句)只能有本书。您不能添加书籍,您只能通过 引用该一本书newCourseLink.book

如果您希望每个 LBC 拥有多本书,则 FK 应该从 Book 转到 LBC。

评论后编辑中间模型的关键在于它的两个 FK 的每个组合都有一个实例。如果你想添加新书,你需要新的 LBC 实例来配合它们。您可以使用 just更改当前 LBC 所指的书newCourseLink.book = my_new_book,但正如我所说,您不能添加一本。

于 2011-09-13T16:46:25.343 回答