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為元組第一個信息,文本內容為元祖第二個信息


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM