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

转载于:https://www.cnblogs.com/c491873412/p/7737695.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值