У меня возникла проблема, которая заключается в следующем: Я получаю параметры через сообщение, чтобы делать запросы в зависимости от paramtros, которые я передал ... делая гендерные фильтры. Так что я делаю хорошоpython Параметры запроса для получения сообщения
def filter(request):
if request.method == 'POST':
namepost = request.POST.get('name')
surnamepost = request.POST.get('surname')
if namepost != None and surnamepost != None:
result = [a.get_json() for a in Player.objects.filter((Q(name=namepost) & Q(surname=surnamepost)))]
elif namepost != None and surnamepost == None:
result = [a.get_json() for a in Player.objects.filter(name=namepost)]
data = {"meta": {"total_count":len(result)}, "objects": result}
aa = json.dumps(data)
return HttpResponse(aa, content_type='application/json')
ли работает правильно, проблема: Если бы только эти два параметра, не было никаких проблем, было завершить остальные гипотезы ... проблема что у меня может быть до 10 параметров, переданных по почте фильтрам, и я никогда не знаю, какие переданы, может быть 1, 2, 4, ... поскольку пользователь делает фильтр
Но для этого потребуется много ifs, у него было бы много шансов ... есть ли способ, которым я могу сделать это по-другому?
мне удалось сделать ... так что я сделал: http://plnkr.co/edit/ L1ByIyFyaEdgwrfVU7Jr? P = info Но у меня есть проблема, но это работает для полей прямого фильтра как имя и фамилия, но не для позиции, потому что для этой позиции нужно было сделать что-то вроде этого: Player.objects.filter (position__in = Position.objects.filter (name = positionpost)) Как это сделать в коде? Кто-то может мне помочь? – Helio