【问题标题】:Reverse for 'edit' with no arguments not found. 1 pattern(s) tried: ['edit/(?P<page>[^/]+)$']未找到任何参数的“编辑”反向。尝试了 1 种模式:['edit/(?P<page>[^/]+)$']
【发布时间】:2020-11-26 17:55:43
【问题描述】:

我正在尝试编写 wiki 抄袭代码。但是我收到了这个意外错误:Reverse for 'edit' with no arguments not found。尝试了 1 种模式:['edit/(?P[^/]+)$']。所以有重定向它的Python函数的页面。

{% extends "encyclopedia/layout.html" %}

{% block title %}
    Encyclopedia
{% endblock %}

{% block body %}

<form method=POST action="{% url 'edit' %}">
    {% csrf_token %}
    <label>The Title Of Your Wiki Page</label>
    <input type="text" name="Title" value="None">
    <label>The Content Of Your Wiki Page</label>
    <input type="text" name="Content" value="None">
    <input type="submit" value="Submit Your Wiki Page" value="None">
</form>

{% endblock %}

还有我的 Python 函数:

def edit(request):
    print(page)
    return render(request,"encyclopedia/edit.html")

urls.py中的路径函数:

path("edit/<str:page>", views.edit, name="edit")

重定向到编辑功能的 wiki.html 页面:

{% extends "encyclopedia/layout.html" %}

{% 块标题 %} 百科全书 {% endblock %}

{% block body %}

{{content|safe}}
<form action="/edit/{{name}}" method="POST">
    {% csrf_token %}
    <input type="submit" value="Edit">
</form>

{% endblock %}

【问题讨论】:

  • 您需要共享呈现此处给出的 html 代码的视图代码。

标签: python html django django-templates


【解决方案1】:

您的代码中几乎没有错误

  1. 您需要为edit函数提供一个参数,即page,因为网址path("edit/&lt;str:page&gt;", views.edit, name="edit") 正在将参数&lt;str:page&gt;传递给函数

    def edit(request, page):
        print(page)
        return render(request,"encyclopedia/edit.html")
    
  2. 您需要在模板中为 URL {% url 'edit' %} 提供参数

    {% url 'edit' argument %}

【讨论】:

    猜你喜欢
    • 2021-02-05
    • 2019-02-07
    • 2019-11-18
    • 2021-10-27
    • 2022-01-17
    • 2021-12-12
    • 2020-05-13
    • 1970-01-01
    • 2021-08-10
    相关资源
    最近更新 更多