Django之Form及ModelForm操作汇总(验证篇八)

本文详细介绍了Django中的Form和ModelForm的使用,包括初次实战、自定义验证字段类、常用选择插件的实现、自定义验证规则的方法以及如何初始化数据。对于自定义验证规则,文章提供了多种实现方式,并特别提到了在处理选择标签时如何动态获取数据。此外,还涵盖了ModelForm的相关知识点。
摘要由CSDN通过智能技术生成

上一篇:django之modelform验证实战示例演示(验证篇七)点击跳转
目录篇:Django之Form及ModelForm目录篇 点击跳

目录


Form汇总

    初次实战

1、创建Form类

from django.forms import Form
from django.forms import widgets
from django.forms import fields
 
class MyForm(Form):
    user = fields.CharField(
        widget=widgets.TextInput(attrs={'id': 'i1', 'class': 'c1'})
    )
 
    gender = fields.ChoiceField(
        choices=((1, '男'), (2, '女'),),
        initial=2,
        widget=widgets.RadioSelect
    )
 
    city = fields.CharField(
        initial=2,
        widget=widgets.Select(choices=((1,'深圳'),(2,'广州'),))
    )
 
    pwd = fields.CharField(
        widget=widgets.PasswordInput(attrs={'class': 'c1'}, render_value=True)
    )

2、View函数处理

from django.shortcuts import render, redirect
from .forms import MyForm
 
 
def index(request):
    if request.method == "GET":
        obj = MyForm()
        return render(request, 'index.html', {'form': obj})
    elif request.method == "POST":
        obj = MyForm(request.POST, request.FILES)
        if obj.is_valid():
            values = obj.clean()
            print(values)
        else:
            errors = obj.errors
            print(errors)
        return render(request, 'index.html', {'form': obj})
    else:
        return redirect('http://www.google.com')

3、生成HTML

<form action="/" method="POST" enctype="multipart/form-data">
    <p>{
  { form.user }} {
  { form.user.errors }}</p>
    <p>{
  { form.gender }} {
  { form.gender.errors }}</p>
    <p>{
  { form.city }} {
  { form.city.errors }}</p>
    <p>{
  { form.pwd }} {
  { form.pwd.errors }}</p>
    <input type="submit"/>
</form>

    自定义Form验证字段类

创建Form类时,主要涉及到 【字段】 和 【插件】,字段用于对用户请求数据的验证,插件用于自动生成HTML;

1、Django的From内置字段如下:

Field
    required=True,               是否允许为空
    widget=None,                 HTML插件
    label=None,                  用于生成Label标签或显示内容
    initial=None,                初始值
    help_text='',                帮助信息(在标签旁边显示)
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值