Как получить имена полей поиска из кверисета 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"]
Вернуться на верх