Как избавиться от дублирования контекста в Django
Подскажите, как можно избавиться от дублирования контекста в представлениях. Мне нужно в методе post представления CreateComment получить весь контекст из представления ArticleDetail.
class ArticleDetail(DetailView):
model = Article
context_object_name = 'article'
pk_url_kwarg = 'article_id'
template_name = 'blog/articles_dir/article_detail.html'
def get_queryset(self):
queryset = super().get_queryset()
queryset = Article.objects.select_related('author', 'category')
return queryset
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['comments'] = get_list_objects(
Comment, article=context['article']).select_related('article', 'name')
context['form'] = AddCommentForm()
return context
class CreateComment(View):
def post(self, request, article_id):
form = AddCommentForm(request.POST)
if form.is_valid():
form = form.save(commit=False)
form.article = Article.objects.get(pk=article_id)
form.name = User.objects.get(pk=request.user.pk)
form.save()
return redirect(
reverse_lazy('blog:article_detail_url',
kwargs={'article_id': article_id})
)
return render(request, 'blog/articles_dir/article_detail.html', {'form': form})