Как выполнить запрос django orm без использования имени поля?
У меня есть один json-данный, который содержит имя поля модели как json-ключ со значением. Я хочу выполнить запрос orm и определить имя поля во время выполнения.
Ex:
json_data = {"postgres_id":"10"}
query = AcronymSecurityControlMaster.objects.get(postgres_id=10)
json_data = {"age":"10"}
query = AcronymSecurityControlMaster.objects.get(age=10)
Вы можете использовать распаковку словаря для передачи словаря в качестве именованных параметров вызова функции:
json_data = {"age": 10}
# dictionary unpacking ↓↓
query = AcronymSecurityControlMaster.objects.get(**json_data)
Однако вы должны убедиться, что json_data
не содержит уязвимостей безопасности. Например, пользователь может попытаться "угадать" конфиденциальные данные с помощью:
{ userfield__name='aabbcc' }
где вы, возможно, не хотите делиться именем пользователя.