/ / Django NoReverseMatch - Ansicht mit zwei Parametern - Python, Django, Django-Templates, Reverse, Django-URLs

Django NoReverseMatch - Ansicht mit zwei Parametern - Python, Django, Django-Vorlagen, Reverse, Django-URLs

views.py:

def cal_main(request, year=None):
if year: year = int(year)
else:    year = time.localtime()[0]

nowy, nowm = time.localtime()[:2]
lst = []

# create a list of months for each year, indicating ones that contain entries and current

for y in [year, year+1, year+2]:
mlst = []
for n, month in enumerate(mnames):
entry = current = False   # are there Entry(s) for this month; current month?
entries = Entry.objects.filter(date__year=y, date__month=n+1)
if y == nowy and n+1 == nowm:
current = True

if entries:
entry = True
mlst.append(dict(n=n+1, name=month, entry=entry, current=current))
lst.append((y, mlst))

return render_to_response ("calend.html", dict (years = lst, user = request.user, year = year, Erinnerungen = Erinnerungen (request)))

urls.py:

url(r"^(d+)/$", "cal_main"),
url(r"^calendar/$","cal_main"),

calend.html:

"{% url "views.cal_main" year|add:"1" %}"

Ich möchte das aktuelle und das nächste Jahr anzeigen, erhalte jedoch eine Fehlermeldung:

NoReverseMatch Reverse für "views.cal_main" mit Argumenten "(2015,)" und Schlüsselwortargumente "{}" nicht gefunden. 0 Muster versucht: []

Ich habe schon ein paar Tipps zum Umgang gesuchtIch fühle mich so, als habe ich alles versucht, aber es gibt immer denselben Fehler. Ich habe Django noch nie zuvor benutzt. Nachdem ich also versucht habe, was die Leute im Internet schreiben, weiß ich nicht, was ich sonst noch probieren kann, also bin ich dankbar, wenn mir jemand helfen könnte.

Ich verwende Django 1.7 und Python 2.7.

Antworten:

0 für die Antwort № 1

Übergeben Sie die URL-Name in dem url Vorlagen-Tag:

"{% url "cal_main" year|add:"1" %}"