我正在做一个博客项目 我在创建后向博客添加了创建功能,他被重定向到主页,但我希望用户被重定向到他刚刚创建的博客
这是我的观点:
def createBlog(request):
form = BlogForm()
if request.method == "POST":
form = BlogForm(request.POST)
if form.is_valid():
form.save()
return redirect("blog")
# the above redirect to the homepage
# but I want it to redirect it to the blog page that he just created
context = {"form": form}
return render(request, "blog/blog_form.html", context)
这是我的网址页面:
path("", views.blog, name="blog"),
path("blog/<str:pk>/", views.blog, name="blogs"),
path("create-blog", views.createBlog, name="create-blog")
答案 0 :(得分:1)
form.save()
返回刚刚创建的实例,因此您将从中获取实例的 PK 值。
def createBlog(request):
form = BlogForm()
if request.method == "POST":
form = BlogForm(request.POST)
if form.is_valid():
blog_instance = form.save()
return redirect("blogs", pk=blog_instance.pk)
context = {"form": form}
return render(request, "blog/blog_form.html", context)