У меня есть следующее представление, в котором я добавляю дополнительный контекст для отправки аналогичного сообщения в шаблон.
class PostDateDetailView(DateDetailView):
queryset = Post.published.all()
date_field = "publish"
month_format='%m'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
obj = self.get_object()
post_tags_pks = obj.tags.all().values_list('pk', flat=True)
similar_posts = self.queryset.filter(tags__in=post_tags_pks).exclude(pk=obj.pk)
similar_posts = similar_posts.annotate(same_tags=Count('tags')).order_by('-same_tags','-publish')[:3]
context["similar_posts"] = similar_posts
print(context)
return context
Представление работает правильно, но когда я распечатываю контекст, я получаю 'объект' и 'сообщение '(это один и тот же объект)
{'object', 'post', 'view', 'similar_posts'}
Когда я смотрю на функцию get_context_data из SingleObjectMixin, кажется, что результат всегда будет дублироваться: я имею в виду, что всегда будет self.object [' object '] , и context_object_name ['post'].
def get_context_data(self, **kwargs):
context = {}
if self.object:
context['object'] = self.object
context_object_name = self.get_context_object_name(self.object)
if context_object_name:
context[context_object_name] = self.object
context.update(kwargs)
return super().get_context_data(**context)
Я хотел бы знать, есть ли для этого причина или я что-то упускаю. Заранее спасибо.