我有一本书包含在3个类别中。
现在我可以编辑图书信息,也可以更改类别。由于Book和category之间存在ManyToMany关系,因此我不得不更新本书的类别。
以下是我尝试更新每个类别的方法:
book = Book.objects.get(id=bookid)
newcategory1 = Category.objects.get(id=int(request.POST.get('cat1')))
newcategory2 = Category.objects.get(id=int(request.POST.get('cat2')))
newcategory3 = Category.objects.get(id=int(request.POST.get('cat3')))
book.cat.order_by('id')[:1] = cat1
book.cat.order_by('id')[1:2] = cat2
book.cat.order_by('id')[2:3] = cat3
但是它说:
'QuerySet' object does not support item assignment
关系
class Category(models.Model):
CATS = (
('Art', 'Art'),
('Sport', 'Sport and Athletics'),
('Science', 'Science Discovery'),
)
cat = models.CharField(max_length=2, choices=CATS,unique=True)
class Book(models.Model):
title = models.TextField()
subtitle = models.TextField()
cat = models.ManyToManyField(Category)
我正在阅读有关add()
和remove()
方法的内容..如何使用现有类别更新现有图书的类别?
答案 0 :(得分:1)
据您所知,我知道“删除”和“添加”是这种情况下的最佳选择。
有关Django中关于多对多关系的更多信息和完整示例,您和其他可以提出相同问题的用户,请点击以下链接:https://docs.djangoproject.com/en/dev/topics/db/examples/many_to_many/