作用:
- 用于对用户请求的数据校验。
- 生成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})

 

posted on 2018-05-17 19:18  Py行僧  阅读(94)  评论(0编辑  收藏  举报