如何关联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中更改输入名称,我该怎么办?
答案 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