2010-04-04 29 views
8

Tôi có hai mã tương tự. Việc đầu tiên hoạt động như mong đợi.Thẻ url Django nhiều thông số

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

Nhưng thêm tham số thứ hai sẽ cho kết quả trả về chuỗi rỗng.

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


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

xem chữ ký:

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

Trả lời

17

Hãy thử

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

mà không có khoảng trống giữa các đối số

Cập nhật: Tính đến Django 1.9 (và có thể sớm hơn) đúng Cách thứ nhất là để bỏ qua dấu phẩy và lập luận riêng biệt sử dụng không gian:

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

OMG! Nó hoạt động! Cảm ơn rất nhiều! – Overdose

+0

Có tài liệu nào có sẵn cho tính năng này trong Tài liệu Django không? – Dipak

0

Đây là ví dụ thực tế về tôi khi sử dụng kỹ thuật này. Có thể điều này sẽ giúp:

{% 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 %} 
Các vấn đề liên quan