При попытке развернуть url в html-файле шаблона django возникает исключение 'NoReverseMatch'. Я включил дополнительный параметр в функцию views
def entry(request, name):
content = util.get_entry(name.strip())
if content == None:
content = "## Page was not found"
content = markdown(content)
return render(request, "encyclopedia/entry.html", {'content': content, 'title': name})
def edit(request,title):
content = util.get_entry(title.strip())
if content == None:
return render(request, "encyclopedia/edit.html", {'error': "404 Not Found"})
if request.method == "POST":
content = request.POST.get("content").strip()
if content == "":
return render(request, "encyclopedia/edit.html", {"message": "Can't save with empty field.", "title": title, "content": content})
util.save_entry(title, content)
return redirect("entry", name=title)
return render(request, "encyclopedia/edit.html", {'content': content, 'title': title})
util имеет файлы, которые помогают получить имена введенных файлов, сохранить новую запись или получить содержимое записи.
{% extends 'encyclopedia/layout.html' %}
{% block title %}
{{title}}
{% endblock %}
{% block body %}
<a href="{% url 'edit' title %}" class="badge badge-info">Edit This Page</a>
{{entry | safe }}
{% endblock %}
макет имеет стандартный блочный код HTML
edit.html содержит HTML код, который дает кнопку на каждой странице, чтобы мы могли редактировать содержимое записи страницы и передает name='content' для редактируемого содержимого.
urlpatterns = [
path("", views.index, name="index"),
path("wiki/<str:name>", views.entry, name = 'entry'),
path("search", views.search, name= 'search'),
path("newpage",views.create,name='create'),
path("random",views.random,name='random'),
path("edit", views.edit, name='edit')
]
THIS IS A CS50w project and I have taken references from other sources.
Вы забыли добавить параметр title в путь редактирования
path("edit/<str:title>/", views.edit, name='edit')