首页 > 解决方案 > 为什么字段值存储为一个集合?

问题描述

当输入字段值保存到数据库并且我检索相同的值以更新字段时,我将更新的字段作为一组

当我从数据库中检索数据时,<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"})

标签: djangodjango-models

解决方案


更新字段的行有一个逗号,例如:

#       trailing comma ↓
book.book_title = title,
book.save()

由于尾随逗号,Python 将把它包装在一个单例元组(一个只有一个元素的元组)中,然后当它转换为字符串时,它会显示逗号。

因此,您应该删除尾随逗号,并使用:

#    no trailing comma ↓
book.book_title = title
book.save()

推荐阅读