如何修改 Django 中现有的模型实例?

How to modify existing model instance in django?

在 Django 中,我试图修改现有 id 的书的标题。我的 views.py 文件包含

b=Books.objects.filter(book_id__iexact=book)
b.title = "Narnia"
b.save()

我遇到错误,无法保存模型实例。

尝试使用 get 方法而不是 filter。当您使用过滤器时,您使用的是查询集对象。不要使用 Books.objects.filter(book_id__iexact=book) 尝试使用 b=Books.objects.get(book_id__iexact=book)

您可以使用 2 种方法来更新记录。

https://docs.djangoproject.com/en/4.0/ref/models/querysets/#update

.get will work for a single object and .filter will work for multiple records

#1st
b=Books.objects.get(book_id=book)
b.title = 'Foo'
b.save()

#2nd
Books.objects.filter(book_id__iexact=book).update(title='Foo')