Zweite Zeit über NoReverseMatch. Ich kann den Fehler einfach nicht gut genug verstehen, um den Fehler in meinem Code zu finden. Das letzte Mal war es, weil ich den Feldern in meinem URL-Regex keinen Namen gegeben habe, aber das ist jetzt nicht das Problem. Ich verstehe, dass eine Million Dinge schief gehen können, aber aus irgendeinem Grund kann ich es einfach nicht finden.Django NoReverseMatch mit Vorlagen (wieder)
Der Fehler ist:
NoReverseMatch an/david/Physik/a/ umge für 'Information' mit Schlüsselwort-Argumente '{' category_name ': 'Physik', 'information_name': 'Test info' , 'Unterkategorie_Name': 'a'} 'nicht gefunden. 1 Schema (n) versucht: ['david/(? P [a-zA-Z _] +)/(? P [a-zA-Z _] +)/(? P [a-zA-Z _] +)/$ ']
die Vorlage den Fehler verursacht ist:
<h1>The items for {{ category }}/{{ subcategory }}</h1>
{% if items %}
<ul>
{% for item in items %}
<li><a href="{% url 'information' category_name=category subcategory_name=subcategory information_name=item %}">{{ item }}</a></li>
{% endfor %}
</ul>
{% else %}
<h4>No items for that subcategory</h4>
{% endif %}
views.py:
from django.shortcuts import render, get_list_or_404, get_object_or_404
from django.http import HttpResponse
from .models import Category, Subcategory, Information
# Create your views here.
def index(request):
return render(request, 'basic_web/index.html')
def search(request):
return HttpResponse('Here you can search!')
def browse(request):
categories = Category.objects.all()
context = {'categories': categories}
return render(request, 'basic_web/browse.html', context)
def view_category(request, category_name):
category = get_object_or_404(Category,name__iexact=category_name)
subcategories = get_list_or_404(Subcategory, parent=category)
context = {'category': str(category), 'subcategories': map(str, subcategories)}
return render(request, 'basic_web/category.html', context)
def view_subcategory(request, category_name, subcategory_name):
category = get_object_or_404(Category,name__iexact=category_name)
subcategory = get_object_or_404(Subcategory, name__iexact=subcategory_name, parent=category)
items = get_list_or_404(Information, subcategory=subcategory, category=category)
context = {'category': str(category), 'subcategory': str(subcategory), 'items': map(str,items)}
return render(request, 'basic_web/subcategory.html', context)
def view_information(request, category_name, subcategory_name, information_name):
# category = get_object_or_404(Category,name__iexcat=category_name)
# subcategory = get_object_or_404(Subcategory, name__iexact=subcategory_name, parent=category)
# information = get_object_or_404(Information, name__iexact=information_name, parent=subcategory)
return HttpResponse('{0} {1} {2}'.format(category_name, subcategory_name, information_name))
urls.py:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^search/$', views.search, name='search'),
url(r'^browse/$', views.browse, name='browse'),
url(r'^(?P<category_name>[a-zA-Z_]+)/$', views.view_category, name='category'),
url(r'^(?P<category_name>[a-zA-Z_]+)/(?P<subcategory_name>[a-zA-Z_]+)/$',
views.view_subcategory, name='subcategory'),
url(
r'^(?P<category_name>[a-zA-Z_]+)/(?P<subcategory_name>[a-zA-Z_]+)/(?P<information_name>[a-zA-Z_]+)/$',
views.view_information, name='information'),
]
ich würde auch sehr zu schätzen wissen wenn du könntest giv Ich habe ein paar Tipps, wie man erkennt, was eigentlich falsch ist, wenn Django sagt NoReverseMatch
Vielen Dank!
Wären Sie so freundlich, die Antwort als richtig zu markieren. Danke – e4c5