Обратный вариант для «редактирования», если аргументы не найдены. Пробовали 1 шаблон (ы): ['edit / (? P <page>[^ /] +) $'] - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь кодировать вики-плагию. Но у меня возникла эта неожиданная ошибка: «Изменить» без аргументов не удалось. Пробовали 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")

Эта вики. html страница, которая перенаправляет на функцию редактирования:

{% extends "энциклопедия / макет. html"%}

{% block title%} Энциклопедия {% endblock %}

{% block body %}

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

{% endblock %}

1 Ответ

1 голос
/ 07 августа 2020

В вашем коде несколько ошибок.

  1. Вам необходимо предоставить аргумент функции edit, т.е. page, поскольку URL-адрес path("edit/<str:page>", views.edit, name="edit") передает параметр <str:page> к функции

    def edit(request, page):
        print(page)
        return render(request,"encyclopedia/edit.html")
    
  2. Вам необходимо указать аргумент для URL {% url 'edit' %} в шаблоне

    {% url 'edit' argument %}

...