我有一个中间模型,如下 -
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
?
由于
答案 0 :(得分:0)
您设置关系的方式,每个Link_Book_Course
(可怕的名称,BTW)只能有一个书。您无法添加图书,只能通过newCourseLink.book
参考该图书。
如果您希望每个LBC都有多本书,那么FK应该从Book到LBC。
评论后编辑中间模型的重点是它的两个FK的每个组合都有一个实例。如果你想要添加新书,你需要新的LBC实例。您可以更改当前LBC仅使用newCourseLink.book = my_new_book
引用的图书,但正如我所说,您无法添加一本。