在 django 中创建博客后如何将用户重定向到博客

时间:2021-07-04 03:36:52

标签: python django

我正在做一个博客项目 我在创建后向博客添加了创建功能,他被重定向到主页,但我希望用户被重定向到他刚刚创建的博客

这是我的观点:

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")

1 个答案:

答案 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)
相关问题