Я хотел бы превратить это: http://127.0.0.1: 8000 / fields_data /? Field_name__exact = 053 & field_name__exact = 064
в это:
fields = Fields.objects.filter(Q(field_name__exact='053')| Q(field_name__exact=field'064))
Там может быть дополнительными числами field_name__exacts, это не известно до времени выполнения.
В views.py я могу легко превратить URL в QueryDict, потому что request.GET уже является объектом QueryDict. Согласно документам, QueryDict был разработан так, чтобы одно и то же имя ключа могло использоваться с несколькими значениями, что является общим шаблоном в URL.
Затем я пытаюсь превратить QueryDict во что-то, совместимое с ** kwargs, путем используя: fields = serialize('geojson', Fields.objects.filter(**request.GET.dict()))
, но request.GET.dict () выглядит так: {'field_name__exact': ['053', '064']}
. В результате я получаю только второй объект.
Я начинаю подозревать, что мне может понадобиться написать что-то более сложное, включающее в себя понимание, но я чувствую, что я действительно близок. Может ли кто-нибудь помочь мне с правильным синтаксисом превратить QueryDict (многозначные ключи) в OR-набор Q ()?