作用:
- 用于对用户请求的数据校验。
- 生成HTML标签
对于Choice字段,在数据库添加数据,刷新页面不更新的情况,可以重写构造方法,每次实例化Form对象的时候重新从数据库取数据,这样页面上显示的是最新的数据
from django.forms import Form from django.forms import fields class UserForm(Form): name = fields.CharField(label='用户名', max_length=32) email = fields.EmailField(label='邮箱') ut_id = fields.ChoiceField( # choices=[(1,'二笔用户'),(2,'闷骚')] choices=[] ) def __init__(self, *args, **kwargs): super(UserForm, self).__init__(*args, **kwargs) # 每次实例化,重新去数据库获取数据并更新 self.fields['ut_id'].choices = models.UserType.objects.all().values_list('id', 'title') def user(request): if request.method == "GET": form = UserForm() return render(request, 'user.html', {'form': form})