2 Stimmen

Django benannte Urls, generische Ansichten?

Also, hier ist eine meiner urls.py

urlpatterns = patterns('items.views',
    url(r'^(?P<item_id>[\d+])/$', 'view_listing', name="item_view"),
)

Und in meiner Vorlage kann ich das tun: <a href="{% url item_view 1 %}">here</a> und ich werde einen Link zur richtigen Seite bekommen. Alles funktioniert prima!

Aber hier ist eine andere

urlpatterns = patterns('django.views.generic.list_detail',
    (r'^(?P<slug>[\w-]+)/$', 'object_detail', dict(page_info, slug_field='slug'), "page_view"),
)

Aber in meiner Vorlage, wenn ich das versuche: <a href="{% url page_view slug='TermsAndConditions' %}">Terms and Conditions</a> oder dies <a href="{% url page_view 'TermsAndConditions' %}">Terms and Conditions</a> wird mit dieser Fehlermeldung abgebrochen:

TemplateSyntaxError at /

Could not parse the remainder: ''TermsAndConditions '' from ''TermsAndConditions ''

Weiß jemand, ob es möglich ist, benannte URLs mit generischen Ansichten zu verwenden und die url Template-Tag wie dieses? Oder der richtige Weg, um es zu bekommen, um mit generischen Ansichten arbeiten?

Merci.

4voto

Guðmundur H Punkte 10358

Das Vorlagensystem in Django unterstützt nur doppelte Anführungszeichen, was den Syntaxfehler erklärt, den Sie erhalten, wenn Sie einfache Anführungszeichen verwenden. Sie müssen Folgendes tun

{% url page_view slug="TermsAndConditions" %}

Wenn Sie die Anführungszeichen weglassen, geht Django davon aus, dass Sie sich auf eine variabel namens TermsAndConditions .

4voto

Stan Punkte 8234

Die Lösung lautet

<a href='{% url page_view slug="TermsAndConditions" %}'>Terms and Conditions</a>

0voto

James Bennett Punkte 10503

Die Zeichenfolge "TermsAndConditions" darf nicht in Anführungszeichen gesetzt werden:

{% url page_view slug=TermsAndConditions %}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X