【发布时间】:2010-11-27 17:32:49
【问题描述】:
我有 Book 和 Category 模型,通过另一个模型具有多对多关系
class Category(models.Model):
name = models.CharField(max_length = 255)
class Book(models.Model):
name = models.CharField(max_length = 255)
categories = models.ManyToManyField(Category, through='book.BookCategory')
class BookCategory(models.Model):
business = models.ForeignKey(Business)
category = models.ForeignKey(Category)
user = models.ForeignKey(User)
created = models.DateField()
然后我的表单如下所示:
class BookForm(forms.ModelForm):
name = forms.CharField(max_length = 255)
categories = forms.ModelMultipleChoiceField(
widget=forms.CheckboxSelectMultiple,
queryset = Category.objects.all()
)
class Meta:
model = Business
fields = ('name', 'categories')
当我尝试保存表单的实例时 book_form = BookForm(request.POST, instance=business) book_form.save()
我收到此错误: 无法在指定中间模型的 ManyToManyField 上设置值。请改用 book.BookCategory 的管理器。
我将如何解决这个问题?
【问题讨论】:
标签: django django-models django-forms