Я бегу Django 1.10 на Mac OS X.Джанго NoReverseMatch при использовании URL в шаблоне
Я пытаюсь поставить некоторые ссылки в моих шаблонах, но я получил ошибку NoReverseMatch в обоих шаблонах.
ошибка выглядит следующим образом: NoReverseMatch at /kfet/
со следующим предложением:
Reverse for 'interface' with arguments '()' and keyword arguments '{'id_ienkli': ''}' not found. 1 pattern(s) tried: ['kfet/interface_du_klient/(?P<id_ienkli>\\d+)$']
Вот является urls.py в моем приложении:
#-*- coding: utf-8 -*-
from kfet import views
from django.conf.urls import url
from . import views
from kfet.models import klient
from django.urls import reverse
urlpatterns = [
url(r'^$', views.accueil, name='accueil'),
url(r'^interface_du_klient/(?P<id_ienkli>\d+)$', views.interface_du_klient, name='interface'),
url(r'^date$', views.date_actuelle),
url(r'^achat/(?P<id_bouffon>\d+)/(?P<id_ach>\d+)$', views.achat,name='achat')
]
Вот мой views.py :
#-*- coding: utf-8 -*-
from django.http import HttpResponse
from django.shortcuts import render
from kfet.models import klient,achetables
from django.shortcuts import get_object_or_404
from django.urls import reverse
from datetime import datetime
def date_actuelle(request):
return render(request, 'kfet/date.html', {'date': datetime.now()})
def accueil(request):
liste_tokards=klient.objects.all()
return render(request, "kfet/accueil.html",{'liste_tokards': liste_tokards})
def interface_du_klient(request,id_ienkli):
produits=achetables.objects.all()
klient_selec=get_object_or_404(klient, id_klient=id_ienkli)
if id_ienkli==0:
return redirect('accueil')
else :
render(request, "kfet/interface_du_klient.html", {'client': klient_selec}, {'liste_produits' : produits})
def achat(request,id_bouffon,id_ach):
klient_selec=get_object_or_404(klient, id_klient=id_ienkli)
if id_ach==0:
return redirect('interface_du_klient', id_ienkli=id_bouffon)
else:
klient_selec.acheter(id_ach)
return render(request, "kfet/interface_du_klient.html", {'client': klient_selec}, {'liste_produits' : produits})
Вот мой interface_du_klient.html:
<h1>Bienvenue sur le site de la KFet !</h1>
Choisir un klient à faire payer !
<li><a href="{% url "kfet.views.accueil"%}">Retour accueil</a></li>
<li><a href="{% url "achat" id_bouffon=client.id_klient id_ach=1 %}">Acheter bière 33cl</a></li>
<li><a href="{% url "achat" id_bouffon=client.id_klient id_ach=2 %}">Acheter bière 25cl</a></li>
<li><a href="{% url "achat" id_bouffon=client.id_klient id_ach=3 %}">Acheter pinte Blondi</a></li>
И, наконец, вот мой accueil.html:
<h1>Bienvenue sur le site de la KFet !</h1>
Choisir un klient à faire payer!
{% for ptite_frappe in liste_tokards %}
<div class="article">
<h3>{{ptite_frappe.nom}} {{ptite_frappe.prenom}}</h3>
<p><a href="{% url 'interface' id_ienkli=petite_frappe.id_klient %}">Sélectionner cette petite frappe</a>
</div>
{% endfor %}
Я верю ve тег шаблона '{% url" foo "%}' фактически является вызовом 'reverse (" foo ")'. –
Как вы называете reverse, в каком файле? –
(спасибо за быстрый ответ) –