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

  • 相关阅读:
    unity3d动态加载资源
    u3D大场景的优化
    C#代码规范
    游戏模型规范
    vue prop不同数据类型(数组,对象..)设置默认值
    vue-router实现页面的整体跳转
    Vue实现组件props双向绑定解决方案
    电脑连接并调试手机浏览器的网页
    对象里面的属性有值但是打印出来是空的,获取不到
    vue-cli sass安装
  • 原文地址:https://www.cnblogs.com/c491873412/p/7737695.html
Copyright © 2011-2022 走看看