我試圖在維基頁(yè)面上放置一個(gè)編輯按鈕,但它給了我這個(gè)錯(cuò)誤: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貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
您沒有為您的網(wǎng)址提供所需的參數(shù)。
所以你需要改變:
{% url 'edit_page' %}
到:
{% url 'edit_page' page_title %}
假設(shè)這page_title將為您提供要編輯的相關(guān)頁(yè)面。
吃雞游戲
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
將您的edit.html更改為:
<form action="{% url 'encyclopedia:edit_page' page_title %}" method="POST">
MYYA
TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊
您需要提供editPage參數(shù)以便 Django 可以反轉(zhuǎn) URL:
{% url 'edit_page' page_title %}在您的情況下,我正在使用,page_title因?yàn)槟?code>"page_title": editPage,在模板上下文中進(jìn)行了設(shè)置。
添加回答
舉報(bào)
0/150
提交
取消
