更新:我正在尝试使用 HttpResponseRedirect() 来引导用户返回到入口页面,但使用以下语法对我不起作用:return HttpResponseRedirect((entry_page(request, title))
我正在处理 CS50 网络课程的 Wiki 项目,但我的编辑条目实现有问题。我能够编辑一个条目并正确保存,但由于某种原因,将用户重定向到新编辑的条目只会显示一个空条目页面,如下所示:
这是我的看法。比:
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")
]
我的重定向有问题吗?当我重新访问入口页面时,页面显示我所做的编辑
非常感谢您的点评。
答案 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
})