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 がないというエラーをスローします。理由を知っている人はいますか?

さらに、どうすれば Book を に追加できnewCourseLinkますか?

ありがとう

4

1 に答える 1

0

関係を設定する方法では、各(恐ろしい名前、ところで) は1Link_Book_Course本しか持つことができません。ブックを追加することはできません。 でその 1 つのブックのみを参照できます。newCourseLink.book

各 LBC に複数の本が必要な場合は、FK を Book から LBC に移動する必要があります。

コメント後に編集中間モデルの要点は、2 つの FK のすべての組み合わせに対して 1 つのインスタンスがあることです。新しい本を追加したい場合は、それに合わせて LBC の新しいインスタンスが必要になります。現在の LBC が参照している本は だけで変更できnewCourseLink.book = my_new_bookますが、追加することはできません。

于 2011-09-13T16:46:25.343 に答える