2009-03-09 12 views
2

私はdjangoモデルを持っていますが、これはintフィールド(null = True、blank = True)を持っています。私は、フォームがユーザーから提出得るとき 今、私はそうのようにそれを割り当てます。ヌルモデルフィールドにDjango form.cleaned_dataを格納しますか?

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

をしかし、時には、私はエラーを取得する:

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

それは(「」)空白だ場合、私はさまよいましたフィールドに割り当てられる文字列値? 私の理解では、モデルは空白文字列を空白として扱うでしょうか?

この件に関するお手伝いをいたします。ありがとう。

答えて

5

いいえ、そうではありません。 NULLを割り当てる場合は、PythonのNoneを使用してください。それ以外の場合、Djangoは文字列から数値を解析しようとしますが、空の文字列に対しては失敗します。

あなたはこれを達成するためにor構文を使用することができます。

my_model.width = form.cleaned_data['width'] or None 
+1

これを行うには良い場所は、フォームのclean_width機能だろう。 – Mitch

関連する問題