Я делаю следующее, когда я получаю, чтобы отправлять данные на запросы:динамический запрос после получения данных питона
fields = [
'name',
'surname',
'weight',
'height',
'position',
'agent',
'nationality',
'shirt_name',
'shirt_number',
'preferred_foot',
]
if request.method == 'POST':
filter_spec = None
for fld_name in fields:
value = request.POST.get(fld_name, None)
if value is not None:
if fld_name == 'position':
fld_name = 'position__in'
value = Position.objects.filter(name=value)
if fld_name == 'agent':
fld_name = 'entrepreneur__in'
value = Entrepreneur.objects.filter(name=value)
if filter_spec is None:
filter_spec = Q(**{fld_name: value})
else:
filter_spec &= Q(**{fld_name: value})
players = Player.objects.filter(filter_spec) if filter_spec else Player.objects.none()
result = [p.get_json() for p in players]
py_resp = {
'meta': {
'total_count': len(result),
},
'objects': result,
}
json_resp = json.dumps(py_resp)
return HttpResponse(json_resp, content_type='application/json')
Чтобы разместить запрос выглядит следующим образом:
Player.objects.filter(position__in=Position.objects.filter(name=positionpost))
Я сделал так, как он находится на вершине, что я не в состоянии осуществить это в коде национальности, так как запрос таким образом:
Player.objects.filter(country__in=Country.objects.filter(nationality__in=Nationality.objects.filter(name='Espanhola')))
d Я не уверен, как это сделать в коде выше Кто-нибудь может мне помочь?
Я пробовал так и даже не должен быть ... как ... потому что я использую mongobd. Но я сомневаюсь, как я могу сделать запрос гражданства, следуя той же логике, которую я использовал для размещения представленного кода. – Helio
Я не понимаю ваш комментарий. Почему эти запросы отличаются от других? 'fld_name = 'country__nationality__name'',' value =' Esnpanhola''. –
эти запросы были всего лишь примером того, как они это делают ... лучше понять, потому что, заметив в моем коде, я не делаю этого напрямую – Helio