Сохранить Django form.cleaned_data в пустом поле модели? - PullRequest
2 голосов
/ 09 марта 2009

У меня есть модель django, которая имеет поле int (с null = True, пустым = True). Теперь, когда я получаю форму от пользователя, я назначаю ее так:

my_model.width= form.cleaned_data['width']

Однако иногда я получаю сообщение об ошибке:

ValueError: invalid literal for int() with base 10: ''

Я бродил, если это пустое ('') строковое значение, которое присваивается полю? Потому что, насколько я понимаю, модель будет рассматривать пустую строку как пустую / пустую?

В этом вопросе будет признательна любая помощь. Спасибо.

1 Ответ

5 голосов
/ 09 марта 2009

Нет, это не так. Если вы хотите присвоить NULL, используйте Python None. В противном случае Django попытается проанализировать число из строки, и это не удастся для пустой строки.

Вы можете использовать конструкцию or для достижения этой цели:

my_model.width = form.cleaned_data['width'] or None
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...