0
我有一個項目,人們將能夠爲表單創建變量,然後其他用戶將填寫該表單。當他們創建所述表單時,他們可以選擇3種不同類型的答案:從值列表,整數或字符串。基本上,我創建了用戶爲這個表單創建的所有變量的formset,但是如果它是一個列表,我想將CharField的輸入類型更改爲ChoiceField。在Django視圖中更改字段類型
所以這是我觀點:
def insererDonnee(request, modele, contexte=-1):
variables = Variable.objects.filter(modele=modele)
varIter = variables.iterator()
DonneeFormSet = formset_factory(InsertDonneeForm, extra=variables.count())
submitAdress = "insererDonnee"
if request.POST:
formset = DonneeFormSet(request.POST)
else:
formset = DonneeFormSet()
for formx in formset:
formx.variable = varIter.next()
formx.nomVar = formx.variable.nom
formx.fields['valeur'].label = formx.nomVar
# Here I call setList to change the type
if formx.variable.type_variable in ["SOLIST", "LIST"]:
formx.setList(formx.variable)
而且我形式:
class InsertDonneeForm(forms.Form):
variable = Variable()
nomVar = 'Variable'
valeur = forms.CharField(label=nomVar, max_length=100)
def setList(self, variable):
choices = ListItem.objects.filter(variable=variable, modele=variable.modele)
valeur = forms.ModelChoiceField(queryset=choices)# or None)
print valeur
最後打印只是爲了看看現場確實變了,它是,但如果我在調用setList之後在我的視圖中執行相同的打印,我的字段仍然是
無論如何,我可以在創建表單後選擇適當的類型嗎?