В Python Я знаю, что двойные подчеркивания, предшествующие имени, заставляют Python добавлять classname
в имя variable
, как в _classname__variable
имя (название mangling). Поэтому мой вопрос заключается в том, что в приложении Python/Django меня попросили изменить, есть переменные (?) Имена типа tr_rowid_debtor__de_listed_date__lte
. Являются ли эти три переменные (tr_rowid_debtor
, de_listed_date
и lte
) или это какая-то специальная конструкция для Python? Это происходит в заявлении, которое строит строку запроса для Django ...Что означают двойные подчеркивания?
query = DeTransaction.objects.select_related().filter(
tr_rowid_debtor__de_listed_date__lte=to_date,
tr_rowid_debtor__de_rowid_client__cl_rowid=in_client
).values(
'tr_rowid_debtor','tr_rowid_debtor__de_listed_date',
'tr_payment_date','tr_account','tr_to_agency','tr_to_client'
)
Любой совет здесь будет оценен.
Вы должны сделать учебник по Django, где объясняется эта конструкция (использование для пересечения отношений модели). –
Как сказал @DanielRoseman; условие выполняется с использованием поля родственной модели. Кроме того, я разделил один вкладыш на несколько строк для удобства чтения. –