排除基于Django类的视图中的字段不起作用

时间:2013-06-18 00:36:39

标签: python django django-forms

男孩,感觉就像我在这里尝试过一切,而我却无法正确地呈现这种形式(例如,使用一部分字段)。这是相关项目(删除了额外的项目):

models.py:

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:

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

response_form.html:

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

我已经阅读了所有文档,他们建议在元组或列表的排列中使用excludeexcludesfieldfields,无论公共&#34;公共&#34;字段似乎每次都出现 !想法?

感谢您的帮助!

3 个答案:

答案 0 :(得分:9)

您似乎需要在视图中指定form_class

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

答案 1 :(得分:0)

我想提一下,你真的不需要单独创建一个ModelForm。

  

使用模型时,通用视图真的很闪耀。这些通用   视图将自动创建aModelForm,只要它们可以工作   使用哪个模型类

你可以使用它。

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

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

答案 2 :(得分:0)

您可以在课程表格中使用exclude字段:

class ResponseForm(ModelForm):
    class Meta:
        model = Response
        exclude = ['field_to_exclude']

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