2010-04-04 14 views
8

Ich habe zwei ähnliche Codes. Der erste funktioniert wie erwartet.Django url Tag mehrere Parameter

Das Hinzufügen des zweiten Parameters führt jedoch dazu, dass das Ergebnis eine leere Zeichenfolge zurückgibt.

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


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

Aufrufe Unterschrift:

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

Antwort

17

Versuchen

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

ohne den Raum zwischen den Argumenten

Update: Ab Django 1.9 (und vielleicht auch früher) die richtige Art und Weise ist das Komma und getrennte Argumente mit Leerzeichen zu verzichten:

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

OMG! Es klappt! Danke vielmals! – Overdose

+0

Gibt es Dokumentationen für diese Funktion in Django Docs? – Dipak

0

Hier ist ein aktuelles Beispiel für mich mit dieser Technik. Vielleicht wird dies helfen:

{% 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 %} 
Verwandte Themen