16 votes

Balise url Django à paramètres multiples

J'ai deux codes similaires. Le premier fonctionne comme prévu.

urlpatterns = patterns('',
                       (r'^(?P<n1>\d)/test/', test),
                       (r'', test2),
{% url testapp.views.test n1=5 %}

Mais en ajoutant le deuxième paramètre, le résultat renvoie une chaîne vide.

urlpatterns = patterns('',
                           (r'^(?P<n1>\d)/test(?P<n2>\d)/', test),
                           (r'', test2),)

{% url testapp.views.test n1=5, n2=2 %}

Signature des vues :

def test(request, n1, n2=1):

30voto

naw Points 681

Essayez

{% url testapp.views.test n1=5,n2=2 %}

sans l'espace entre les arguments

Mise à jour : A partir de Django 1.9 (et peut-être avant), la manière correcte est d'omettre la virgule et de séparer les arguments en utilisant des espaces :

{% url testapp.views.test n1=5 n2=2 %}

3voto

Lawsonry Points 171

Voici un exemple concret de l'utilisation de cette technique. Peut-être que cela vous aidera :

{% if stories %}
  <h2>Stories by @{{author.username}}</h2>
  <ul>
    {% for story in stories %}
      <li><a href="{% url 'reader:story' author.username story.slug %}">{{story.title}}</a></li>
    {% endfor %}
  </ul>
{% else %}
  <p>@{{author.username}} hasn't published any stories yet.</p>
{% endif %}

2voto

Anshik Points 11

https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#url

De Django 1.5 Avertissement N'oubliez pas de mettre des guillemets autour du chemin de la fonction ou du nom du modèle !

{% url 'some-url-name' arg1=v1 arg2=v2 %}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X