Почему Django хранит поле charfield как кортеж?
Допустим, у меня есть простая модель в django
class Customer(models.Model):
session_id = models.CharField(max_length=200)
nuts3 = models.CharField(max_length=200)
Для сохранения объекта модели я сделаю следующее
Customer.create(session_id = "unique_session_id", nuts3 = "some text")
Теперь предположим, что мне нужно перезаписать орех3 в сохраненном объекте модели каким-то другим текстом
customer = Customer.objects.filter(session_id = "unique_session_id")
customer = customer[0]
customer.nuts3 = "some new text"
customer.save()
При просмотре сохраненного объекта клиента в админке я вижу кортеж в поле nuts3
charfield ('some new text',)
. Я ожидал, что в поле будет только строка без кортежа. Как получилось, что Django добавил строку как кортеж?
Как отметил Виллем Ван Онсем в разделе комментариев, это связано с запятой, о которой я не знал. Мой фрагмент кода приведен ниже, и в ,
в nuts3,
стоит запятая, которую нужно убрать. Спасибо, что помогли мне с этим!
if customer:
customer = customer[0]
customer.nuts3 = nuts3,
customer.save()