Django - 页面重定向在保存后显示为空页面?

时间:2021-07-02 18:14:26

标签: python django cs50

更新:我正在尝试使用 HttpResponseRedirect() 来引导用户返回到入口页面,但使用以下语法对我不起作用:return HttpResponseRedirect((entry_page(request, title))

我正在处理 CS50 网络课程的 Wiki 项目,但我的编辑条目实现有问题。我能够编辑一个条目并正确保存,但由于某种原因,将用户重定向到新编辑的条目只会显示一个空条目页面,如下所示:

This shows up after I edit

这是我的看法。比:

def edit(request, title):
    content = util.get_entry(title)
    if request.method == "GET":
        return render(request, "encyclopedia/edit.html", {
            "title": title,
            "content": content
        })

    elif request.method == "POST":
        title = request.POST.get("title")
        content = request.POST.get("content")
        util.save_entry(title, content)
        html = md_converter(util.get_entry(title))
        return render(request, "encyclopedia/entry.html", {
            "title": title,
            "content": html
        })
    else:
        return render(request, "encyclopedia/edit.html", {
            "title": title,
        })

和我的 urls.py:

from . import views

app_name = "encyclopedia"
urlpatterns = [
    path("", views.index, name="index"),
    path("wiki/<str:entry>", views.entry_page, name="entry"),
    path("wiki/edit/<str:title>", views.edit, name="edit"),
    path("search", views.search, name="search"),
    path("random", views.random_page, name="random"),
    path("create_landing",views.create_landing_page, name="create_landing"),
    path("create_entry",views.create_entry, name="create_entry")
]

我的重定向有问题吗?当我重新访问入口页面时,页面显示我所做的编辑

非常感谢您的点评。

1 个答案:

答案 0 :(得分:0)

想通了,

我渲染了错误的页面,并且没有为 def edit 的上下文提供正确的变量。我将那里的 elif 语句改为这样,它起作用了:

elif request.method == "POST":
        title = request.POST.get("title")
        content = request.POST.get("content")
        util.save_entry(title, content)
        html = md_converter(util.get_entry(title))
        return render(request, "encyclopedia/entry.html", {
            "title": title,
            "entry": html
        })