7

男孩,感觉就像我在这里尝试了一切,但我无法正确呈现此表单(例如,使用字段的子集)。以下是相关项目(删除了额外项目):

模型.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']

视图.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>

我已经阅读了所有文档,他们建议在元组或列表的排列中使用exclude, excludes, field,fields无论“公共”字段似乎每次都出现什么!想法?

谢谢你的帮助!

4

3 回答 3

12

看起来您需要form_class在视图上指定:

class ResponseCreate(CreateView):
    model = Response
    form_class = ResponseForm
于 2013-06-18T00:45:23.540 回答
0

只是我想提一下,您实际上并不需要单独创建 ModelForm。

使用模型时,通用视图非常出色。这些通用视图会自动创建一个ModelForm,只要它们能确定使用哪个模型类

你可以用这个。

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']
于 2015-03-04T20:56:15.470 回答
0

您可以exclude在课堂表单中使用字段:

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

class ResponseCreate(CreateView):
    model = Response
    form_class = ResponseForm
于 2020-03-26T08:21:44.960 回答