Как проверить, что данные формы django равны None, ' ' (пустая строка) или False
if form.data['first_name'] is None:
return True
else:
return False
Я пытаюсь проверить, является ли это поле first_name пустым или "Нет". Но если поле окажется пустым, следующее вернет ( u'') вместе с false. Любое другое решение для определения, является ли это конкретное поле формы пустым или нет? И почему это происходит?
3 ответа
Решение
Проблема в том, что, проверяя:
if form.data['first_name'] is None:
Только проверяет, имеет ли значение None, где as:
if form.data['first_name]:
Проверяет для None
или же ''
пустая строка или False
подойди к этому.
Что вы также можете сделать, это:
return bool(form.data.get('first_name', False))
В этом случае, если form.data['first_name']
нет это будет return False
, если значение None
или же ''
это также return False
, если значение True
или же 'a string'
будет return True
,
Вы можете просто сделать:
if form.data['first_name']:
is None
специально проверяет None
,
Или сделайте следующее:-
if not form.data['first_name']:
или же
firstname=FormData.getvalue('first_name')
if not firstname:
<then let people know this shouldn't be empty or None>