我是python和django的新手,現在我一直在用這種表單掙扎一段時間。我得到的是一個有三個領域的表格。我希望它有可能離開這些領域的每一個空白,並在視圖中,我試圖做一個if-elif-else語句取決於哪些字段留空。但它在這裏出錯了。Django表單:清除if語句中的數據
如果我離開field1空白a是一個空列表,如果我打印它,但在if語句中== == []似乎不計算。它直接跳轉到隨機函數發生錯誤的else部分,因爲它不能在d上使用(這是一個空列表,因爲它已經被a過濾了)。
如果我不在表單中留下任何字段,一切正常。
我的問題: 是不是可以做的如果清潔數據的聲明或我只是做這一切都是錯的?爲什麼不「如果一個== []」數?
以下是部分代碼的外觀。視圖:
def SomeFunction(request):
if request.method == 'POST':
form = SomeForm(request.POST)
if form.is_valid():
a = form.cleaned_data['field1']
b = form.cleaned_data['field2']
c = form.cleaned_data['field3']
form = form.save()
if a == []:
d = Model2.objects.filter(Model2field2=b, Model2field3=c).distinct()
e = random.choice(d)
return render(request, 'SomePage.html', {
'e' : e
})
#Here I have some similar elif statements..
else:
d = Model2.objects.filter(Model2field1=a, Model2field2=b, Model2field3=c).distinct()
e = random.choice(d)
return render(request, 'SomePage.html', {
'e' : e
})
形式:
class SomeForm(forms.ModelForm):
class Meta:
model = Model1
fields = ['field1', 'field2', 'field3']
widgets = {
'field1' : forms.CheckboxSelectMultiple,
'field2' : forms.CheckboxSelectMultiple,
'field3' : forms.CheckboxSelectMultiple,
}
你抽象太多了這裏。 field1是什麼類型的字段? –
所有的字段都是ManyToManyFields。 – xdna