У меня есть следующие поля модели Django:
first_message = model.ForeignKey(FirstMessage)
second_message = model.ForeignKey(SecondMessage)
, тогда как в БД будет заполнено только одно из них, но не оба одновременно.
Теперь у меня есть следующее условие фильтра:
# state_model_field can be either 'first_message' or 'second_message'
field_filter = {f'{stats_model_field}__isnull': False}
objects = (MessageStats.objects
.filter(**field_filter)
.prefetch_related(stats_model_field)
.annotate(message=F(stats_model_field))
.values('message')
.order_by('message'))
Поле объектов должно содержать все MessageStats
с объединенной таблицей FirstMessage
или SecondMessage
.Чтобы не делать различий между полями в будущем, я хочу переименовать любое поле state_model_field
в псевдоним message
(с аннотацией).
Однако результаты возвращаются какdict
{'message': 1}
но я хочу полный объект увядания FirstMessage
или SecondMessage
!?