Django Form,ModelForm以及ModelFormSet组件
Form
- 简介:
Django自带的form组件, 和模型model原理类似,将类中的静态字段映射到input标签中; 一个表单的字段本身就是类; 他们管理表单数据,并在提交表单时执行验证。 DateField 和FileField 处理的数据类型差别很大,必须完成不同的事情。 表单字段在浏览器中呈现给用户的是一个HTML 的“widget” —— 用户界面的一个片段。 每个字段类型都有一个合适的默认Widget class,需要时可以覆盖 也就是说,通过更改 widget 即可修改模板中的样式
- 基本用法:
- 定义Form类:
from django import forms class NameForm(forms.Form): your_name = forms.CharField(label='Your name', max_length=100)
- 视图中使用:
from django.shortcuts import render from django.http import HttpResponseRedirect from .forms import NameForm def get_name(request): # 如果这是一个POST请求,我们就需要处理表单数据 if request.method == 'POST': # 创建一个表单实例,并且使用表单数据填充request请求: form = NameForm(request.POST) # 检查数据有效性: if form.is_valid(): # 在需要时,可以在form.cleaned_date中处理数据 # ... # 重定向到一个新的URL: return HttpResponseRedirect('/thanks/') # 如果是GET或者其它请求方法,我们将创建一个空的表单。 else: form = NameForm() return render(request, 'name.html', {'form': form})
- 模板中使用:
<form action="/your-name/" method="post"> {% csrf_token %} {{ form }} <input type="submit" value="Submit" /> </form>
- 常用API解析
ModelForm
- 简介:
- 基本用法:
- 定义Form类
- 视图中使用:
- 模板中使用:
- 常用API解析
ModelFormSet
- 简介:
- 基本用法:
- 定义Form类
- 视图中使用:
- 模板中使用:
- 常用API解析
示例:超市进销管理系统