2009-11-22 32 views
11

Tôi đã cố gắng sử dụng url mẫu thẻ trong django, nhưng không có may mắn,url mẫu thẻ trong django mẫu

tôi xác định urls.py của tôi như thế này

urlpatterns = patterns('', 
    url(r'^analyse/$',    views.home, name="home"), 
    url(r'^analyse/index.html',  views.index, name="index"), 
    url(r'^analyse/setup.html',  views.setup, name="setup"), 
    url(r'^analyse/show.html',  views.show, name="show"), 
    url(r'^analyse/generate.html', views.generate, name="generate"), 

tôi xác định các mẫu url trong quan điểm của tôi như thế này

{% url 'show'%} 

sau đó tôi nhận được thông báo lỗi này

Bị bắt ngoại lệ khi hiển thị: Đảo ngược '' hiển thị '' với đối số '()' và đối số từ khóa '{}' không phải là được tìm thấy.

gốc Traceback (gần đây nhất gọi cuối cùng): File "/Library/Python/2.5/site-packages/django/template/debug.py", dòng 71, trong render_node result = node.render (context) File "/Library/Python/2.5/site-packages/django/template/defaulttags.py", dòng 155, trong render nodelist.append (node.render (context)) File "/ Library/Python/2.5/site-packages/django/template/defaulttags.py ", dòng 382, ​​để hiển thị tăng e NoReverseMatch: Đảo ngược '' hiển thị '' với đối số '()' và đối số từ khóa '{}' không tìm.

Tôi tự hỏi tại sao django không thể hiển thị? cách đúng để xác định nó trong tempalte là gì?

Trả lời

0

Đối với những gì là có giá trị, tôi đã có cùng một vấn đề và trong khi tôi không nhớ lý do tại sao bây giờ, điều này giải quyết nó cho tôi. Ví dụ từ ứng dụng SCRUM tôi đang làm việc.

url(r'^$', 'scrum.views.index', name='scrum-index'), 
10

Vấn đề là dấu nháy đơn của bạn xung quanh 'hiển thị'. Thay đổi điều này thành "hiển thị" và nó sẽ làm việc cho bạn.

Xem here

+1

Nó không bao giờ làm việc cho tôi, với đơn hay ngoặc kép. Loại bỏ các dấu ngoặc kép hoạt động, nó thật kỳ quặc. 1.5 làm việc với dấu ngoặc kép. –

+0

Báo giá đơn hoạt động tốt, Django 1.6. Chỉ cần chắc chắn để đưa các thông số của bạn * bên ngoài * của các dấu ngoặc kép! Đã cho tôi mãi mãi để tìm lỗi đó, hệ thống mẫu đã tạo ra các URL rỗng một cách vui vẻ mà không có dấu hiệu lỗi nào. – Bogatyr

1

Bạn có thể cần phải được cụ thể hơn một chút mà xem bạn đang cố gắng sử dụng:

{% url appname.views.show %} 
+0

Tôi đang cố gắng tìm hiểu về tính năng này - nó được gọi là gì? Tôi đã tìm kiếm tài liệu của Django-Project về Mẫu và chúng không đề cập đến '{% url ....}' – CodyBugstein

3

Bạn có thể có một số quan điểm chưa được thực hiện. Có vẻ như công cụ mẫu cố gắng tìm tất cả các chế độ xem từ các mẫu trong urls.py khi sử dụng bộ lọc {% url ...%}.

Nó thường hiển thị lỗi cho mẫu cuối cùng của bạn trong urls.py.

Hãy thử nhận xét mọi mẫu url bạn chưa triển khai.

Ngoài ra hãy chắc chắn rằng bạn sử dụng đường dẫn đầy đủ:

{% url myapp.views.home %} 

Url mẫu lọc trông thật sự không ổn định. Cố gắng giữ future compatibility.

12

QUAN TRỌNG: điều này là dành cho django 1.4. Tại django 1.5 nó chỉ là đối diện.

thử sử dụng tên url mà không có dấu ngoặc kép

{% url show %} 

không này

{% url 'show'%} 
+5

Ý tưởng tồi. Bằng cách đó, việc sử dụng thẻ mẫu URL không còn được dùng nữa và sẽ không hoạt động ở Django 1.5. – glarrain

+0

Vâng, đó là sự thật;) tôi nên chỉnh sửa :) – iskorum

Các vấn đề liên quan