Django UpdateView表单

时间:2016-08-26 04:59:38

标签: django django-forms django-views

我有一个看起来像..

的表单类
#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中呈现描述?如果没有,我将如何做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:1)

您的表单需要继承自forms.ModelForm,而不是基本的Form类。