我試圖在維基頁面上放置一個編輯按鈕,但它給了我這個錯誤: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條經(jīng)驗 獲得超5個贊
您沒有為您的網(wǎng)址提供所需的參數(shù)。
所以你需要改變:
{% url 'edit_page' %}
到:
{% url 'edit_page' page_title %}
假設(shè)這page_title
將為您提供要編輯的相關(guān)頁面。

吃雞游戲
TA貢獻1829條經(jīng)驗 獲得超7個贊
將您的edit.html更改為:
<form action="{% url 'encyclopedia:edit_page' page_title %}" method="POST">

MYYA
TA貢獻1868條經(jīng)驗 獲得超4個贊
您需要提供editPage
參數(shù)以便 Django 可以反轉(zhuǎn) URL:
{% url 'edit_page' page_title %}
在您的情況下,我正在使用,page_title
因為您"page_title": editPage,
在模板上下文中進行了設(shè)置。
添加回答
舉報
0/150
提交
取消