在 CreateView Django 中重定向不起作用
Redirect in CreateView Django doesn't work
您好,我尝试使用 CBV 创建博客。我想在 post_form.html 中创建一个新的 post 之后,CreateView 将重定向到我刚刚创建的新的 post_detail。所以我在 gg 上搜索并尝试 get_success_url 和 redirect_field_name。但它仍然有错误 Page not found 。因此,我真的不知道新 post 是否已创建。谁能帮我查一下。
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_new
视图发出 POST 请求。因此,您的 <form>
应指定:
<form method="POST" action="{% url 'post_new' %}">
…
</form>
您好,我尝试使用 CBV 创建博客。我想在 post_form.html 中创建一个新的 post 之后,CreateView 将重定向到我刚刚创建的新的 post_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_new
视图发出 POST 请求。因此,您的 <form>
应指定:
<form method="POST" action="{% url 'post_new' %}"> … </form>