有什么辦法可以使django表單類實(shí)際包含一個(gè)字段數(shù)組?我有一個(gè)數(shù)據(jù)庫,它將提取可變數(shù)量的問題來詢問用戶,每個(gè)問題都知道如何定義它的小部件...等等,我似乎無法將其連接到Django表單。我嘗試了這個(gè):class MyForm(forms.Form): question = [] questions = Question.objects.all() for q in questions: question.append(forms.CharField(max_length=100, label=q.questionText))但這在我創(chuàng)建的新實(shí)例時(shí)似乎沒有暴露我的問題列表MyForm。有什么方法可以使用django表單獲取可變數(shù)量的表單字段,或者這超出了它的功能范圍?
2 回答

慕桂英546537
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊
當(dāng)然可以!
class MyForm(forms.Form):
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
for i, q in enumerate(Question.objects.all()):
self.fields['%s_field' % i] = forms.CharField(max_length=100, label=q.questionText)
注意:請(qǐng)確保您的問題在兩次呼叫之間是順序排列的。因?yàn)楸韱翁峤?,回?zhí)等都會(huì)重新填充字段列表。
如果數(shù)據(jù)是有序的并且是靜態(tài)的,那將不是問題。
另外,您可能希望查看FormSets,這是一種可能更適合您的情況的表單列表。
添加回答
舉報(bào)
0/150
提交
取消