2011-11-08 7 views
0

は、私がBooleanFieldを持っている:のBooleanField私のアプリモデルで

campaign = models.BooleanField(default=False, db_index=True, 
    verbose_name=_('processed'), help_text=_('Campaign or not ?')) 

は、私は二つのことを区別するためにこれを使用しています。

<input type="hidden" name="campaign" value="True or False" /> 

が、フォームは、文字列を送信し、私は Booleanにその文字列を変換したいようだ:だから、私は、HTMLフォームから隠されたとして、この値を送信するのではと思いました。もちろん、モデルを書き直しての値を持つ CharFieldにすることはできますが、これはあまりエレガントではありません。

これを行うにはより多くの方法がありますか?

答えて

0

フォームは文字列を送信し、その文字列をブール値に変換します。

request.POSTのすべてのデータは、文字列または文字列のリストとして提供されます。あなた自身でそれを変換するか、あなたのために仕事をするdjango形式(優先)を使用する必要があります。 Djangoのフォームで

あなたはこのようforms.BooleanFieldを開始するときには、ウィジェットを置き換えることができます。

class MyForm(forms.ModelForm): 

    campaign = forms.BooleanField(widget=forms.HiddenInput()) 

More info on django forms

+0

申し訳ありませんが、私は従っていません。このオーバーライドを行うと、HTMLフォームの基本的に文字列であるを受け入れますか? –

+0

私は自分の答えを更新しました。基本的に、django形式は変換を行いますので、心配する必要はありません。また、独自の変換ルールを記述することもできます。 –

+0

djangoはフォームのhtmlを生成するのに役立ちます。上記の投稿の文書リンクを参照してください。 – second

関連する問題