zoukankan      html  css  js  c++  java
  • django Form的回顾--手动档和自动挡

     
    from django.shortcuts import render
    from django.forms import Form
    from django.forms import fields
    from django.forms import widgets
    from django.forms.models import ModelChoiceField
    from rbac import models

     
    手动档:
    class UserInfoModelForm(Form):
        name = fields.CharField(required=Trueerror_messages={"required""用户名不能为空"})
        email = fields.EmailField(required=True)

        这样写不能时时更新,因为它是静态字段,只会在声明这个class的时候访问数据库一次
        # part = fields.ChoiceField(choices=models.Role.objects.value_list("id","caption"))
        part = fields.ChoiceField()

        def __init__(self, *args, **kwargs):
            super().__init__(*args, **kwargs)
            此种方式下,每次new form对象,都会执行数据库查询,数据时时更新
            self.fields["part"].choices = models.Role.objects.value_list("id""caption")
     
    自动档:
    class UserInfoModelForm(Form):
        name = fields.CharField(required=Trueerror_messages={"required""用户名不能为空"})
        email = fields.EmailField(required=True)

        此种方式和手动挡效果一样,但是它会默认将model_obj中的pk作为select选择optionvalue,不能配置,不推荐使用
        part = ModelChoiceField(queryset=models.Role.objects.all())


    def index(request):
        form = UserInfoModelForm()
        return render(request,"index.html",{"from":form})
     
     
     
  • 相关阅读:
    xcode swift对应版本
    VM12安装OS X10.11步骤及说明
    Java开发Webservice的组件
    xml文件格式说明
    android开发中在界面上实现曲线图的几个开源项目
    C#中SQL Server数据库连接池使用及连接字符串部分关键字使用说明
    c#对数据库访问完应关闭连接
    I2C VHDL程序
    数码管一些列功能的verilog实现
    PWM控制灯亮暗的verilog实现
  • 原文地址:https://www.cnblogs.com/jec1999/p/7744750.html
Copyright © 2011-2022 走看看