Можно ли получить доступ к родительскому полю из дочернего объекта в Django?
tl;dr: Я хочу выразить что-то вроде [child.child_field_value, child.parent_field_value] на дочерней модели Django и получить итерабельную модель вроде ['Alsatian', 'Dog'] или подобную.
Context: Я пытаюсь подготовить dict для JSON API в Django, так что у меня есть две модели, Evaluation и ее родитель Charity.
В представлении я фильтрую все оценки, удовлетворяющие определенным параметрам, а затем использую dict comp, следующий в list comp на evaluation.__dict__.items(), чтобы отбросить поле Django '_state' (это не относится к данному вопросу, но, пожалуйста, скажите мне, если вы знаете лучшую практику!):
response = { 'evaluations': [{
key:value for key, value in evaluation.__dict__.items()
if key not in ['_state']} for evaluation in evaluations]}
Но мне нужен хороший способ объединить поля charity_name и charity_abbreviation родительской благотворительной организации каждой оценки с остальными полями этой оценки. Пока что лучший способ, который я могу найти/придумать, это во время dict comp условно проверить, является ли поле, по которому мы итерируем, charity_id, и если да, то найти эту благотворительную организацию и вернуть массив из двух полей.
Но я не придумал, как это сделать, и, похоже, в итоге получится что-то очень беспорядочное, что не является функционально идеальным, поскольку я бы предпочел, чтобы массив состоял из двух пар ключ:значение, в соответствии с остальной частью словаря.