将HTML元素名称与Django表单字段名称相关联

时间:2013-11-20 09:02:13

标签: django django-forms

如何关联HTML元素(输入)名称和“Django”表单字段名称?

例如,我有HTML文件:

...
<input name='some_name'>
...

我的Django表单带有“name”字段:

class SomeForm(ModelForm):
    name = forms.CharField()

创建表单时,将数据传递给它并调用“is_valid”:

form = SomeForm(request.data)
form.is_valid()

“name”字段有错误:“此字段是必填字段”。那么,如果不希望在HTML中更改输入名称,我该怎么办?

2 个答案:

答案 0 :(得分:0)

它们的名称与您的模型属性相同,因此在您的情况下它将是“名称” 并检查是否通过request.data作为SomeForm的'数据'参数是正确的方法。我宁愿使用request.POST

另一种方法:
您可以将SomeForm实例传递给查看上下文并在模板中呈现准备好的表单:

def get_context_data(self, **kwargs):
    # code
    context['form'] = SomeForm() # with data or not
    return context

然后在你的模板中:

{{ form }}

或迭代它:

{% for field in form %}
    {{ field }}
{% endfor %}

这总是一种方法,并发现django如何命名你的输入。

答案 1 :(得分:0)

由于您没有在模板中呈现表单,因此您甚至无需定义它。
它在您的情况下无效仅仅因为它没有绑定数据 您始终可以在这样的视图中访问您的POST数据 - request.POST['name']

文档:https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.POST