Как получить имена полей поиска из кверисета Django?
В QuerySet есть ли способ получить имена полей, используемых для фильтрации запроса? То есть, если я попытаюсь
queryset = Reading.objects.get(user__email="testing@example.com", site__name="site name")
есть ли способ получить значение ["user", "site"]
или ["user__email", "site__name"]
?
На данный момент у меня есть
[ex.lhs.field.name for ex in queryset.query.where.get_source_expressions()]
, который будет правильно работать для поиска, не охватывающего отношения. Этого было бы достаточно, если бы я не работал в кодовой базе, засоренной ими
QuerySet | returned names |
---|---|
Reading.objects.get(user=User(), site=Site()) |
["user", "site"] |
Reading.objects.get(user__email="testing@example.com", site__name="site name") |
["email", "name"] |