marketing_message
- это QuerySet, а не экземпляр модели.
Возможно, вам нужно только последнее «активное» сообщение.
context['marketing_message'] = MarketingMessage.objects.filter(active=True).latest('timestamp')
Или последнее обновленное:
context['marketing_message'] = MarketingMessage.objects.filter(active=True).latest('updated')
Однако latest()
завершится ошибкой, если нет объекта, что, вероятно, не то, что вы хотите, но вы можете сделать это:
try:
context['marketing_message'] = MarketingMessage.objects.filter(active=True).latest('updated')
except MarketingMessage.DoesNotExist:
context['marketing_message'] = None
Однако, глядя на ваши данные, кажется неверным. У вас есть даты начала и окончания, но также активные. Вы можете подразумевать, что что-то активно, если оно попадает в даты начала и окончания.
Кроме того, поскольку у вас есть это, похоже, что у вас может быть несколько сообщений одновременно, и в этом случае вам следует отбросить .latest()
и перебрать те, которые находятся в пределах начальной и конечной дат.