Python 排除基于Django类的视图中的字段无效
天啊,我觉得我已经尝试了这里的一切,但我就是不能让这个表单正确地渲染(例如,使用字段子集)。以下是相关项目(删除额外项目): models.py:Python 排除基于Django类的视图中的字段无效,python,django,django-forms,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(ModelF
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']
答复_form.html:
<form action="" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Create" />
</form>
{%csrf\u令牌%}
{{form.as_p}}
我已经阅读了每一篇文档,他们建议在元组或列表的排列中使用排除
,排除
,字段
,字段
,无论每次出现什么“public”字段!想法
谢谢你的帮助 看起来您需要在视图中指定
form\u class
:
class ResponseCreate(CreateView):
model = Response
form_class = ResponseForm
我想说的是,您并不需要单独创建模型表单 在使用模型时,通用视图确实非常出色。这些是通用的 视图将自动创建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']
您可以在课堂表单中使用
排除字段:
class ResponseForm(ModelForm):
class Meta:
model = Response
exclude = ['field_to_exclude']
class ResponseCreate(CreateView):
model = Response
form_class = ResponseForm
如果在表单中添加逗号,fields=['question',]
,这会改变情况吗?@scottwodall这只会对元组类型而不是列表产生影响