2013-06-18 11 views
5

ここではすべてを試したようですが、このフォームを正しく表示することはできません(フィールドのサブセットなど)。Djangoクラスのフィールドを除いてフィールドを除外する

models.py:response_form.html

class ResponseCreate(CreateView): 
    model = Response 
    fields = ['question'] 

<form action="" method="post">{% csrf_token %} 
    {{ form.as_p }} 
    <input type="submit" value="Create" /> 
</form> 

は私がしました

class Response(models.Model): 
    public = models.BooleanField(default=False) 
    question = models.CharField(max_length=255, default='', blank=True) 

class ResponseForm(ModelForm): 
    class Meta: 
     model = Response 
     fields = ['question'] 

views.pyここでは、関連する項目は、(余分な項目は削除)ですdocsのすべてのビットを読んで、彼らはexclude,excludes,field,0123タプルまたはリストの順列でが表示されても、いつでも "public"フィールドがと表示されているように見えます。!思考?

ありがとうございました!

+0

フォームにカンマを追加すると、 'fields = ['question'、]'、それはものを変更しますか? –

+0

@ScottWoodallこれは、リストではなくタプルタイプにのみ違いがあります – karthikr

答えて

9

あなたのビューにform_classを指定する必要がありますように見えます:

class ResponseCreate(CreateView): 
    model = Response 
    form_class = ResponseForm 
+0

うわー、それは簡単でした。ドキュメントは本当にそれをスキップします。ありがとう! – aronchick

0

ちょうど私はあなたが本当に個別に作成するのModelFormを必要としないことを言及したいと思います。

モデルで作業しているときに一般的なビューが本当に輝きます。これらの一般的な ビューは自動的に限り、彼らはあなたがちょうどこれを使用することができ、モデルクラス

を使用するように アウトを働かせることができるよう、aModelFormを作成します。

関連する問題