【发布时间】:2020-11-29 16:43:41
【问题描述】:
我正在尝试为此表单执行更新功能。模板页面正确显示,但一旦我点击提交按钮,我不断收到 NoReverseMatch 错误:Reverse for 'update_page' with keyword arguments '{'title': ''}'强> 未找到。尝试了 1 种模式:['wiki/(?P[^/]+)/update$'] 根据分配,该项目没有模型。 db 基本上是同一目录中的一个文件夹。此文件夹中的文件通过 util.py 中的 list_entries()、save_entry() 和 get_entry() 函数进行管理。
网址:
app_name = "entries"
urlpatterns = [
path("", views.index, name="index"),
path("newpage", views.newpage, name="newpage"),
path("<str:title>", views.open_page, name="open_page"),
path("search/", views.search, name="search_query"),
path("<str:title>/update", views.update_page, name="update_page"),
path("random/", views.random_page, name="random_page"),
path("<str:title>/deleted", views.del_page, name="del_page")
]
我的观点代码:
def update_page(request, title):
entered_content = util.get_entry(title)
form_dict = {'form_title': title, 'form_content': entered_content}
if request.method == "POST":
form = NewPageForm(request.POST or None, initial=form_dict)
if form.is_valid():
title = form.cleaned_data[title]
updated_content = form.cleaned_data['form_content']
util.save_entry(title, updated_content)
return HttpResponseRedirect(reverse("entries:open_page", args=(title), ))
else:
return render(request, "encyclopedia/updatepage.html", {
"form": form
})
return render(request, "encyclopedia/updatepage.html", {
"form": NewPageForm(request.POST or None, initial=form_dict),
"titles": title,
})
模板:
{% block body %}
<h2>Update the {{titles}} entry:</h2>
<form action="{% url 'entries:update_page' title=titles %}" method="post">
{% csrf_token %}
{{ form.form_content}}
<input type="submit" value="Update">
</form>
<form method="GET" action="{% url 'entries:del_page' title=titles %}" >
<button type = "submit" >Delete Entry</button>
</form>
<a href = "{% url 'entries:index' %}">View Entries</a>
{% endblock %}
【问题讨论】:
-
titles 变量未在上下文中设置,也未在模板中呈现,因此出现错误
标签: python django django-views django-templates django-urls