Нет URL для перенаправления. Либо укажите URL, либо определите
Метод get_absolute_url в модели.
У меня есть следующий класс, в котором я явно определил метод перенаправления, который должен предотвратить эту ошибку.
@method_decorator(login_required, name='dispatch')
class PostUpdateView(UpdateView):
model = Post
fields = ('message',)
template_name = 'board/edit_post.html'
pk_url_kwarg = 'post_pk'
context_object_name = 'post'
def get_queryset(self):
queryset = super().get_queryset()
# ! queryset.objects.filter
return queryset.filter(created_by=self.request.user)
def form_valid(self, form):
post = form.save(commit=False)
post.updated_by = self.request.user
post.updated_at = timezone.now()
post.save()
super(PostUpdateView, self).form_valid(form)
return redirect('board:view_topic', pk=post.topic.board.pk, topic_pk=post.topic.pk)
Я тогда удалил super(PostUpdateView, self).form_valid(form)
отсюда и все работало нормально. Не знаете, почему так должно быть?
Аналогично функции ниже, когда я всегда вызываю form_valid
, я всегда добавляю super().form_valid()
, почему я должен удалить ее выше, чтобы она работала.
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)
Надеюсь, ты мне поможешь, спасибо.