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为元组第一个信息,文本内容为元祖第二个信息

  • 相关阅读:
    极角排序
    字符串板
    splay和lct
    国庆训练
    电子公文传输系统团队项目 确定分工
    2020课程设计——第二周进展
    在Ubuntu下使用OpenSSL搭建CA
    电子公文传输系统团队项目 需求分析
    2020课程设计——第一周进展
    2020课程设计——个人任务
  • 原文地址:https://www.cnblogs.com/c491873412/p/7737695.html
Copyright © 2011-2022 走看看