私は次の見解を持っています:
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)
ユーザーが 3 つの値を入力すると正しくフィルター処理されますが、1 つまたは 2 つ (または何も入力しない) だけを入力すると、値 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)