NoReverseMatch в шаблоне данных url находится в форме кортежа - PullRequest
0 голосов
/ 14 октября 2019

Шаблон URL Django не распознан из-за записи кортежа

Я хочу добавить гиперссылку в HTML-код для перенаправления на страницу с отправкой данных вместе с ней. Путь гиперссылки является динамическим, поэтому я использовал {% url "check" book.id %} в HTML-коде. book.id выдает правильные данные, но отображается в формате кортежа ('12',)

, когда я вызываю определенную страницу, записывая статический URL-адрес, такой как http://127.0.0.1:8000/check/12/, он отлично работает, "проверяет" в качестве области просмотра и 12 в качествепереданный аргумент

как использовать динамический путь

views.py

def add(request):
    book = Readdata.objects.all()
    return render(request, 'result.html', {'books': book})

def check(request,id):
    return render(request,'result.html',{'result': id})

urls.py

urlpatterns = [
    url('add', views.add, name='add'),
    url(r'^check/(\d+)/$', views.check, name="delete_book"),
    url('', views.index, name="index")
]

html

<a href="{% url 'check' book.age %}">click </a> not working
<a href="http://127.0.0.1:8000/check/21/">click </a> working

error-

Не найдено обратное значение для 'check' с аргументами '(21,)'. Попробован 1 шаблон (ов): ['check']

1 Ответ

1 голос
/ 14 октября 2019

Это не имеет ничего общего с кортежами.

Как говорится в ошибке, у вас нет URL-адреса "check", который принимает аргумент "21". Единственный URL, который принимает аргумент, это "delete_book". «проверка» не принимает аргументов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...