老师你好,关于表单有一些疑问
来源:5-1 表单的介绍和一个简单表单的使用方法

秋荏苒
2019-12-06
老师你好
Django 表单似乎没有 type="submit"
这种 widget,只能自己通过 attrs
手动设置,但是问题是如果直接将表单实例在前端渲染,它又会自动渲染出每个字段的 <label>
标签,那么对于按钮,我们根本不需要 <label>
标签,我想问下老师是否可以手动渲染表单字段,也就是,我想要哪里就渲染哪里,就像 WTForms
那样逐个 field
逐个 label
的渲染,或者说有什么办法实现一个 SubmitField
的吗?
下面是我跟着老师写的表单类,以及 HTML 代码
from django import forms
class RegisterForm(forms.Form):
username = forms.CharField(label="用户名", max_length=18, required=True)
password = forms.CharField(
label="密码",
widget=forms.TextInput(attrs={'class': 'test-class', 'id': 'testID', 'type': 'password'})
)
submit = forms.CharField(widget=forms.TextInput(attrs={'type': 'submit'}))
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>Django 表单示例</h1>
<form action="{% url 'register' %}" method="POST">
{% csrf_token %}
{{ form.as_table }}
</form>
</body>
</html>
写回答
1回答
-
有一种自定义的方案 我指的前端。你在后端定义好form后,并不需要渲染到前端,而是自己直接写html 只需要你前端form里的name与type保持后端一致即可。这样就可以做到前端自定义开发表单代码,后端的表单只是做验证即可,错误可以通过render渲染回去
042019-12-06
相似问题