django form表单

Posted willian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django form表单相关的知识,希望对你有一定的参考价值。

#########################根据类来生成表单#################
‘‘‘
django form类
通模型类的属性映射到数据库的字段一样,表单类的字段会映射到html的<input>表单元素
ModelForm通过一个Form映射模型类的字段到HTML表单的<input>元素

Form表单功能
1、自动生成HTML表单元素
2、检查表单数据的合法性
3、如果验证错误,重新显示表单(数据不会重置)

Form相关的对象
widget: 用来渲染成HTML元素的工具
field: form对象中的一个字段
form: 一系列的field对象集合,验证和显示HTML元素
from media : 渲染表单的css和javascript资源

定义Form有两种方式: 参见此项目中的testform
方式一: 直接继承Form
from django import forms

class CustormForm(forms.Form):
    name = forms.CharField(max_length=64)
    qq = forms.CharField(max_length=64)

def customerform(request):
    return render(request,‘testform/testform.html‘,{‘form‘:CustormForm})

方法二:结合model,继承django.forms.ModelForm

from django.forms import ModelForm
from crm import models

class CustomerForm(ModelForm):
    class Meta:
        model = models.Customer
        fields = ‘__all__‘

def customerform(request):
    return render(request, ‘testform/testform.html‘, {‘form‘: CustomerForm})

前端渲染
<form  method="POST">
    {% for field in form %}
        {{ field.name }} {{ field }}
    {% endfor %}
</form>

后端验证
form = CustomerForm(request.POST)
if form.is_valid(): #查看验证是否通过


field属性
{{ field }}  field.lable field.lable_tag field.value field.errors

另外 form_obj

‘‘‘

 

以上是关于django form表单的主要内容,如果未能解决你的问题,请参考以下文章

Django - forms.Form 无法保存当前用户并且表单有效但未保存

Django高级-Form表单组件应用

Django中的form表单

使用Ajax验证并提交Django表单(django-crispy-forms)

django 模板中的表单字段

django form表单组建使用及CBV模式