Question

Alors, voici l'une de mes urls.py

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

Et dans mon modèle, je peux le faire: <a href="{% url item_view 1 %}">here</a> et je vais obtenir un lien vers la bonne page. Tout fonctionne très bien!

Mais, en voici un autre

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

Mais dans mon modèle, si j'essaie ceci: <a href="{% url page_view slug='TermsAndConditions' %}">Terms and Conditions</a> ou ceci <a href="{% url page_view 'TermsAndConditions' %}">Terms and Conditions</a> cela se termine avec l'erreur suivante:

TemplateSyntaxError at /

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

Est-ce que quelqu'un sait s'il est possible d'utiliser des URL nommées avec des vues génériques et la balise de modèle url comme celle-ci? Ou la bonne façon de le faire fonctionner avec des vues génériques?

Merci.

Était-ce utile?

La solution

La solution est

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

Autres conseils

Le système de modèles de Django ne prend en charge que les guillemets doubles, ce qui explique l'erreur de syntaxe que vous obtenez lorsque vous utilisez des guillemets simples. Vous devrez faire

{% url page_view slug="TermsAndConditions" %}

Si vous omettez les guillemets, les choses Django que vous faites référence à une variable nommée TermsAndConditions.

Ne mettez pas de guillemets autour de la chaîne " TermsAndConditions ":

.
{% url page_view slug=TermsAndConditions %}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top