我有一个看起来像..
的表单类#forms.py
class ExampleForm(forms.Form):
color = forms.CharField(max_length=25)
description = forms.CharField(widget=forms.Textarea, max_lenght=2500)
我的观点看起来像这样..
#views.py
class EditExample(UpdateView):
model = Example
fields = ['color', 'description']
template_name = 'example.html'
def get_success_url(self):
pass
模板:
#example.html
{% for field in form %}
{% if field.errors %}
<div class="control-group error">
<label class="control-label">{{ field.label }}</label>
<div class="controls">{{ field }}
<span class="help-inline">
{% for error in field.errors %}{{ error }}{% endfor %}
</span>
</div>
</div>
{% else %}
<div class="control-group">
<label class="control-label">{{ field.label }}</label>
<div class="controls">{{ field }}
{% if field.help_text %}
<p class="help-inline"><small>{{ field.help_text }}</small></p>
{% endif %}
</div>
{% endif %}
{% endfor %}
渲染模板时,所有字段都会正确显示和填充,但“描述”不会显示在Textarea中,而是显示在普通字段中。我假设这是因为UpdateView使用'model = something'而不是'form = something'。
我试过..
#views.py
class EditExample(UpdateView):
model = Example
form_class = Exampleform
template_name = 'example.html'
def get_success_url(self):
pass
但是我收到一个Django错误,说“ init ()得到了一个意外的关键字参数'instance'。
有没有办法成功地使用Updateview在Textarea中呈现描述?如果没有,我将如何做到这一点?
谢谢!
答案 0 :(得分:1)
您的表单需要继承自forms.ModelForm
,而不是基本的Form类。