#python #django #django-models #django-rest-framework #django-orm
Вопрос:
Итак, у меня есть данные json, которые содержат имя поля модели в виде ключа json со значением. я хочу запустить запрос orm и определить имя поля во время выполнения.
Экс:
json_data = {"postgres_id":"10"}
query = AcronymSecurityControlMaster.objects.get(postgres_id=10)
json_data = {"age":"10"}
query = AcronymSecurityControlMaster.objects.get(age=10)
Ответ №1:
Распаковку словаря можно использовать для передачи словаря в качестве именованных параметров вызова функции:
json_data = {"age": 10}
# dictionary unpacking ↓↓
query = AcronymSecurityControlMaster.objects.get(**json_data)
Однако вам следует убедиться, что json_data
он не содержит никаких уязвимостей в системе безопасности. Например, пользователь может попытаться «угадать» конфиденциальные данные с помощью:
{ userfield__name='aabbcc' }
где вы, возможно, не хотите делиться именем пользователя.