Django关联管理器添加



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

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()

我已经创建了一个新的Book和一个新的Link_Book_Course,并且正在尝试将那本书添加到Link_Book_Course

称Link_Book_Course为newCourseLink,称Book为newBook

我认为这个调用会起作用-

newCourseLink.book_set.add(newBook)

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

此外,如何将Book添加到newCourseLink ?

谢谢

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

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

注释后编辑中间模型的关键在于它的两个fk的每一个组合都有一个实例。如果要添加新书,则需要新的LBC实例。您可以更改当前LBC只引用newCourseLink.book = my_new_book的书,但正如我所说,您不能添加一个。

相关内容

最新更新