2017-11-29 6 views
2

を保存そのフィールドの値を空白のままにする任意の種類の数(int/decimal/floating point)。私はまた、デフォルトを空白にしておきたいが、これも許されていないようだ。ジャンゴ</p> <p>が、私はそれが何かを見つけた場合にはない、というDjangoに伝えたい「---」私は、細胞が文字で満たされているDF、未知の値の数を持っているブランク値

私のモデルは次のようになります。

value = models.FloatField(
    # default=blank, 
    null=True, 
    validators=[MinValueValidator(0)], 
) 

私の見解では、このような関数を呼び出します。

if (value == "---"): 
     value = None 

    MyModel(
     value=value, 
    ).save() 

私のフォームは次のようになります。.modelsからDjangoのインポートフォームから

天気予報をインポートする

class WeatherStatisticsForm(forms.ModelForm): 
    class Meta: 
     model = WeatherStatistics 
     fields = [ 
     "value", 
     ] 

DBに空白の値を投稿するにはどうすればよいですか?

+0

エラーが発生しますか?何がうまくいかないの? – dirkgroten

+0

私はこのエラーが発生します:NOT NULL制約が失敗しました:weatherstats_weatherstatistics.value – Davtho1983

+0

これはあなたにNOT NULL制約エラーを与えてはなりません。すべての移行と移行を実行してもよろしいですか?あなたのフォームを検証するとき、空白を許可しないので(ブランク= Trueに設定しないため)、以下の答えで述べるように値が> = 0であるべき検証エラーが発生します。 – dirkgroten

答えて

3

あなたはデシベルでなし値を保存したい場合はMinValueValidatorを削除する必要があります。

class MinValueValidator(min_value, message=None)

Raises a ValidationError with a code of 'min_value' if value is less than min_value.

In [1]: a = None 

In [2]: a < 0 
--------------------------------------------------------------------------- 
TypeError         Traceback (most recent call last) 
<ipython-input-2-29fc65191789> in <module>() 
----> 1 a < 0 

TypeError: unorderable types: NoneType() < int() 
+0

trueですが、検証時にのみ生成され、dbには保存されません。彼はまだ 'MyModel( 値=なし、 ).save()'を実行できるはずです。 – dirkgroten

関連する問題

 関連する問題