6
if form.data['first_name'] is None:
    return True
else: 
   return False  

この first_name フィールドが空白か「なし」かを確認しようとしています。ただし、フィールドがたまたま空白の場合、次は false とともに ( u'' ) を返します。この特定のフォーム フィールドが空白であるかどうかを判断するための他の解決策はありますか? そして、なぜこれが起こるのですか?

4

3 に答える 3

25

問題は、次のことを確認することです。

 if form.data['first_name'] is None:

値が None かどうかのみを確認しますが、次のようになります。

if not 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

于 2013-11-05T16:42:56.390 に答える
4

あなたは簡単に行うことができます:

if form.data['first_name']:

is None特に をチェックしNoneます。

于 2013-11-05T16:32:54.277 に答える
1

または、次の操作を行います:-

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>
于 2016-08-24T12:34:35.577 に答える