我试图在维基页面上放置一个编辑按钮,但它给了我这个错误:NoReverseMatch at /wiki/CSS Reverse for 'edit_pagina' with no arguments not found. 尝试了 1 种模式:['edit/(?P[^/]+)$']urls.py:app_name = "encyclopedia"urlpatterns = [ path("", views.index, name="index"), path("wiki/<str:page>", views.wiki_page, name="wiki_page"), path("create", views.add_entry, name="add_entry"), path("search", views.search, name="search"), path("edit/<str:editPage>", views.edit_page, name="edit_page")]views.py:def get_entry(title): """ Retrieves an encyclopedia entry by its title. If no such entry exists, the function returns None. """ try: f = default_storage.open(f"entries/{title}.md") return f.read().decode("utf-8") except FileNotFoundError: return Nonedef edit_page(request, editPage): content = util.get_entry(editPage) return render(request, "encyclopedia/edit.html", { "page_title": editPage, "content": content })编辑.html:{% extends "encyclopedia/layout.html" %}{% block title %} {{ page_title }}{% endblock %}{% block body %} <form action="{% url 'edit_page' %}" method="POST"> {% csrf_token %} <h1>Edit Page</h1> <textarea name="edit-content" id="textarea-content">{{ content }}</textarea> <button class="btn btn-primary" id="save-edit" type="submit">save changes</button> </form>{% endblock %}
3 回答
POPMUISE
TA贡献1765条经验 获得超5个赞
您没有为您的网址提供所需的参数。
所以你需要改变:
{% url 'edit_page' %}
到:
{% url 'edit_page' page_title %}
假设这page_title
将为您提供要编辑的相关页面。
吃鸡游戏
TA贡献1829条经验 获得超7个赞
将您的edit.html更改为:
<form action="{% url 'encyclopedia:edit_page' page_title %}" method="POST">
MYYA
TA贡献1868条经验 获得超4个赞
您需要提供editPage
参数以便 Django 可以反转 URL:
{% url 'edit_page' page_title %}
在您的情况下,我正在使用,page_title
因为您"page_title": editPage,
在模板上下文中进行了设置。
添加回答
举报
0/150
提交
取消