Перенаправление в CreateView Django не работает
Здравствуйте, я пытаюсь сделать блог, используя CBV. Я хочу, чтобы после создания нового поста в post_form.html CreateView перенаправлял на новый пост_detail, который я только что создал. Я искал в gg и пробовал и get_success_url и redirect_field_name. Но все равно ошибка Page not found
. Из-за этого я действительно не знаю, был ли создан новый пост или нет. Может кто-нибудь проверить это для меня.
Views.py
class PostCreateView(LoginRequiredMixin,CreateView):
login_url = '/login/'
form_class = forms.Post_form
model = models.Post
#redirect_field_name = 'mlog/post_detail.html'
def get_success_url(self):
return reverse('post_detail', kwargs={'pk': self.object.pk,})
urls.py
path('post/<int:pk>/',views.PostDetailView.as_view(),name='post_detail'),
path('post/new/',views.PostCreateView.as_view(),name='post_new'),
path('post/<int:pk>/edit/',views.PostUpdateView.as_view(),name='post_edit'),
path('post/<int:pk>/remove/',views.PostDeleteView.as_view(),name='post_remove'),
path('dratf/',views.DraftListView.as_view(),name='post_draft_list'),
Проблема заключается не в URL успеха, а в методе, в который отправляется форма. Вы должны сделать POST запрос к представлению post_new. Таким образом, ваш <form> должен указывать:
<form method="POST" action="{% url 'post_new' %}">
…
</form>