Django FormMixin с DetailView

Ниже представлен мой BlogDetailView с FormMixin для отдельной формы комментария. Все работает хорошо, за исключением валидации формы.

На данный момент я могу иметь CommentForm с исходными данными, где мне нужны скрытые значения, или отправлять данные request.POST, но скрытое значение будет отсутствовать.

Я хочу, чтобы форма использовала исходные данные при создании и использовала данные request.POST при ошибке или обновлении.

class BlogDetailView(FormMixin, DetailView):
    model = Post
    form_class = CommentForm

    def get_success_url(self):
        return self.object.get_absolute_url()

    def get_context_data(self, **kwargs):
        context = super(BlogDetailView, self).get_context_data(**kwargs)
        context['form'] = CommentForm(self.request.POST, initial={
            'post_id' : self.object.id,
            'user_id' : self.request.user.id
        })
        context['comments'] = self.object.comment_set.all()
        return context


    def post(self, request, *args, **kwargs):
        self.object = self.get_object()
        form = self.get_form()
        if form.is_valid():
            return self.form_valid(form)
        else:
            return self.form_invalid(form)

    def form_valid(self, form):
        print(form.data)
        form.save()
        return super(BlogDetailView, self).form_valid(form)
Вернуться на верх