我有以下觀點:過濾器僅當該值在Django
def process(request):
if request.method == 'POST':
data = request.POST
results = Specs.objects.filter(screenGroup = data['screen_user'], storage = data['storage_user'], mSystem = data['system_user'])
context = {'results' : results}
return render(request, 'process.html', context)
當用戶輸入它正確地濾波這三個值,但是當它只是輸入一個或兩個(或沒有),則它會過濾傳遞值None。如果沒有設置,有沒有辦法忽略過濾器?
謝謝!
編輯:
下面的代碼工作,但它顯然是一個非常效率不高的方法:
def process(request):
if request.method == 'POST':
data = request.POST
if(data['screen_user'] != None):
results = Specs.objects.filter(screenGroup = data['screen_user'])
elif (data['storage_user'] != None):
results = Specs.objects.filter(storage = data['storage_user'])
else:
results = Specs.objects.all()
#plus all the other options...
context = {'results' : results}
return render(request, 'process.html', context)
您是不是在做表單提交? – karthikr
不,我通過AJAX(jQuery)傳遞數據。 – Paolo