Кнопка Django в HTML-шаблоне создает ошибку, которую я не могу решить - PullRequest
0 голосов
/ 26 августа 2018

мой код прост, но я признаю, что взял его из интернета.Я хочу обновить модель нажатием кнопки.Какая модель, она выбирается переменной.Итак, у меня есть этот HTML-код:

<form action="{% url 'reception:update_status' slug=name %}" method="POST">
  {% csrf_token %}
  <input type="submit" value="has arrived">
</form>

Этот код находится в url.py

re_path('update_status/(?P<slug>[-a-zA-Z0-9_]+)$', views.update_status, name='update_status'),

и в views.py

def update_status(request, slug):
    if request.method == 'POST':
        p = MyModel.objects.filter(name=slug)
        p.status = 'is waiting'
        p.update()
        return redirect(request, 'home')

Теперь с кодомвот так, когда я нажимаю на кнопку, возникает следующая ошибка:

Reverse for '<WSGIRequest: POST '/update_status/Name10'>' not found. '<WSGIRequest: POST '/update_status/Name10'>' is not a valid view function or pattern name.

, и я понятия не имею, что это значит.Пожалуйста помоги?Спасибо

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Я решил эту проблему с помощью ПК, а не слизней.

Я бы порекомендовал каждому новичку в Django создать поле идентификатора для каждой модели.Потому что это может быть использовано для передачи параметров очень легко.Слизень сложнее и делает жизнь излишне сложной!

0 голосов
/ 26 августа 2018

Для шаблонов регулярных выражений в Django 2.0 вам нужно использовать re_path вместо path для вашего URL.

...