zoukankan      html  css  js  c++  java
  • Django中Form的数据更新问题

    一:

    from django.shortcuts import render
    from django import forms
    from app01 import models
    from django.forms.models import ModelChoiceField
    class UserModelForm(forms.Form):
        name=forms.ChoiceField(models.UserInfo.objects.values_list('id','name'))
    
    def index(request):
        form=UserModelForm()
        return render(request,'userinfo.html',{'form':form})

    二:

    from django.shortcuts import render
    from django import forms
    from app01 import models
    from django.forms.models import ModelChoiceField
    class UserModelForm(forms.Form):
        name=forms.ChoiceField()
        def __init__(self,*args,**kwargs):
            super(UserModelForm, self).__init__(*args,**kwargs)
            self.fields['name'].choices=models.UserInfo.objects.values_list('id','name')
    
    
    def index(request):
        form=UserModelForm()
        return render(request,'userinfo.html',{'form':form})

    三:

    from django.shortcuts import render
    from django import forms
    from app01 import models
    from django.forms.models import ModelChoiceField
    # Create your views here.
    class UserModelForm(forms.Form):
        name=ModelChoiceField(queryset=models.UserInfo.objects.all())
    
    
    def index(request):
        form=UserModelForm()
        return render(request,'userinfo.html',{'form':form})

    一中在程序启动后会将数据库信息放入缓存,因此提供给用户的信息不会随着数据库信息的更新而更新

    二和三提供给用户的信息会随着数据库信息的更新而更新,因为二中用户每次访问都会创建新的form对象

    choicefield接受的数据类型为[()] 或(())

    ModelChoiceField接受的数据类型为queryset

    生成标签的name属性为form的字段名,id为id_+字段名,value为元组第一个信息,文本内容为元祖第二个信息

  • 相关阅读:
    Struts2整合Spring
    关于碰撞检测的相关信息
    直角三角形
    XNA 3.0初步——自定义游戏循环时间
    XNA 3.0初步——将你的XNA 3.0游戏部署到Zune
    XNA 3.0初步——开始第一个XNA 3.0项目
    创建场景和赛道——概览
    XNA 3.0初步——将你的XNA 3.0游戏部署到另一台PC
    创建场景和赛道——场景绘制
    创建场景和赛道——游戏比较
  • 原文地址:https://www.cnblogs.com/c491873412/p/7737695.html
Copyright © 2011-2022 走看看