2017-08-24 5 views
0

を保存しない:のModelFormは、私は、次のモデルをしているのBooleanFieldのデフォルト値

私はのisActive値を指定せずに新しいオブジェクトを作成していますたび
class TransType(models.Model): 
    typeName = models.CharField(max_length=200) 
    isActive = models.BooleanField(default=True, blank=True) 

    def __str__(self): 
     return self.typeName 

、それはfalseにのisActiveセットを持つオブジェクトを保存している私が設定しているにもかかわらず、デフォルトはTrueです。ここで何が問題になるのでしょうか?

EDIT:

<form method="POST" action="{% url 'trans:createmode' %}" class="modal-content form-horizontal" id="creator"> 
    {% csrf_token %} {{ form }} 
    <label for="mode" class="col-sm-3 control-label">Transport Mode</label> 
    <input type="text" name="typeName" maxlength="200" class="form-control" required="required" id="typeName"> 
    <input type="submit" class="btn btn-fill btn-success pull-right" id="submit" value="Save"> 
</form> 
+0

フォームコードを表示してください –

+0

@BearBrown私は – want2learncsharp

+1

を追加しました。私はフォームクラスを意味し、ビューではより良い –

答えて

1

を作業する必要があります。 blank=Trueは、フィールドは、の形式で空にすることができますが、必須ではないと言います。

isActiveは、Djangoのシェルでのテスト、値が「になる」とBooleanFieldによってFalseとして扱われます、フォームに空になります場合は、次の

from django.forms.fields import BooleanField 
field = BooleanField() 
field.to_python('') # Results False 
field.to_python('Test') # Results True 
field.to_python(True) # Results True 

提案:フォームでinitial=Trueを追加することができますフィールドを入力するか、Modelフィールドからblank=Trueを削除します。フォームにフィールドが必要になります。

1

HIは、あなたがこの

model.py

class TransType(models.Model): 
    typeName = models.CharField(max_length=200) 
    isActive = models.BooleanField(default=True) 

    def __str__(self): 
     return self.typeName 

のように試みることができるだけで =空白真を削除し、私はそれが動作しなければならないと思います。

ちょうど私はあなたがTransTypeモデルのためのModelFormを使用していると仮定シェルをジャンゴに行くと

object = TransType() 
object. typeName = 'test' 
object.save() 

ようにそれは

+0

空白= True部分がなければ正しく動作しませんでした。私はちょうどそれが動作するかどうかを確認するためにそれを追加しました – want2learncsharp

+0

あなたはコードの私の最後の変更を確認することができます – Robert

関連する問題