欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Django中的Form表单

程序员文章站 2022-06-11 19:20:06
...

Django-Form表单

  • 继承 django.forms.Form
  • 可以通过 django.forms 定义表单属性

Form 的用途

  • 生成表单页面 (不常用)
  • 验证数据

Form 表单的配置步骤

  • 在 应用下、新建一个 forms.py, 在该模块下,定义当前应用下的 表单类
from django import forms


class ResourceCommentForm(forms.Form):
    # 表单中的属性,要和 提交的属性保持一致
    star = forms.IntegerField(min_value=1, max_value=5, required=True, label="星级")

    # 评论的内容
    content = forms.Textarea()

    # 评论的资源
    res_id = forms.IntegerField(label="资源的ID", required=True)

Form表单生成 表单页面

form = ResourceCommentForm()

form.as_table()

form.as_p()

form.as_ul()

form表单验证参数


from .forms import ResourceCommentForm

form = ResourceCommentForm(data=request.POST)

# 对提交的数据进行数据校验
if form.is_valid():

	# 获取校验成功的数据, 返回字典  cleaned_data 属性必须先调用 is_valid ,否则 form表单没有该属性
	param = form.cleaned_data

ModelForm

  • 生成表单页面
  • Model实现数据的新增
  • Model实现数据的修改

使用 ModelForm实现数据的新增

form = ResourceCommentModelForm(data=request.POST)

# 对提交的进行校验
if form.is_valid():
	
	# 获取校验成功的数据
	# form.cleaned_data
	
	# 获取modelform 对应的模型对象
	resourceComment = form.instance
	
	# 通过 模型对象 调用 save完成数据的新增
	# resourceComment.save()
	
	# 通过 form 对象,调用 save 完成数据的新增
	
	form.save()

使用ModelForm实现数据的修改

resourceComment = ResourceComment.objects.get(pk=pk)

form = ResourceCommentModelForm(data=request.POST, instance=resourceComment)

# 对提交的进行校验
if form.is_valid():
	
	# 获取校验成功的数据
	# form.cleaned_data
	
	# 获取modelform 对应的模型对象
	resourceComment = form.instance
	
	# 通过 模型对象 调用 save完成数据的新增
	# resourceComment.save()
	
	# 通过 form 对象,调用 save 完成数据的新增
	
	form.save()