django - 为什么字段值存储为一个集合?
问题描述
当输入字段值保存到数据库并且我检索相同的值以更新字段时,我将更新的字段作为一组
当我从数据库中检索数据时,<QuerySet [{'id': 21,'book_title': 'pokolo', 'book_category': '0', 'book_type': 'F'}]>
更新检索到的字段值后的数据,<QuerySet [{'id': 21,'book_title': "('pokolo',)", 'book_category': '0', 'book_type': 'F'}]>
书名是一个 CharField 并在发送到数据库之前被清理
更新书籍
def update_book(request)
book_id = request.POST.get('book_id')
title = request.POST.get('book_title')
category = request.POST.get('book_category')
type = request.POST.get('book_type')
try:
b=Book.objects.get(pk=book_id)
b.book_title = title,
b.book_category = category
b.book_type = type
b.save()
except Book.BookNotExist:
return JsonResponse({book_id:"Book not found"})
解决方案
更新字段的行有一个逗号,例如:
# trailing comma ↓
book.book_title = title,
book.save()
由于尾随逗号,Python 将把它包装在一个单例元组(一个只有一个元素的元组)中,然后当它转换为字符串时,它会显示逗号。
因此,您应该删除尾随逗号,并使用:
# no trailing comma ↓
book.book_title = title
book.save()