2009-03-09 28 views
20

Tôi có một dòng trong một hình thức Django:Django Newbie: "Xếp không tìm thấy"

{% for aa in my_array %} 

mà dường như được kích hoạt lỗi này:

Template lỗi

Caught một ngoại lệ trong khi hiển thị: Đảo ngược cho 'dev_env.profiles.views.viewPlan' với đối số '(' ',)' và từ khoá đối số '{}' không phải là danh từ d.

Thông báo lỗi này thực sự có ý nghĩa gì?

Tôi nghi ngờ rằng một trong hai dòng là chính xác, nhưng thông báo lỗi là sai. Hoặc lỗi là có thật nhưng dòng này là một cá trích đỏ.

Tôi nên tìm kiếm những gì trên trái đất?

Cập nhật: Paulo đã sắp xếp điều này, bên dưới.

Trong thực tế, tôi đã có một {% url viewPlan planId %} một vài dòng (vì vậy dòng báo cáo lỗi sai), nhưng lỗi đã được kích hoạt vì planId trống trong trường hợp này.

Trả lời

38

Bạn có một cái nhìn tên viewPlan mà bạn làm điều gì đó như thế này trong một mẫu:

{% url viewPlan %} 

hoặc một cái gì đó như thế này trong một cái nhìn:

reverse('viewPlan') 

Nếu bạn làm điều đó và bạn không có dòng giống như sau:

url(r'^whatever/url/$', 'dev_env.profiles.views.viewPlan', name="viewPlan"), 

... trong cấu hình url của bạn Tôi sẽ hãy tưởng tượng đó là lỗi bạn đang gặp phải. Ngoài ra, và nhiều khả năng, bạn có thể đang chụp một giá trị (có thể là id hoặc một cái gì đó) trong URL viewPlan nhưng không vượt qua một đối số khi đảo ngược url. Vì vậy, nếu bạn đang chụp bất kỳ giá trị trong regex, như thế này:

url(r'^plans/(\d+)$', 'dev_env.profiles.views.viewPlan', name="viewPlan"), 

Bạn cần phải gọi nó như thế này:

{% url viewPlan 15 %} 

Hoặc như thế này:

reverse('viewPlan', args=[15]); 

đâu 15 là rõ ràng là bất cứ giá trị nào được ghi là mong đợi.

+0

cảm ơn bạn đã đưa tôi đi đúng hướng. Nó đã thực sự chỉ là đối số tôi đã đi qua trong url {% là trống trong bối cảnh này.Cheers – interstar

+0

Bạn cũng sẽ nhận được cùng một lỗi nếu bạn thay thế 'viewPlan' với 'viewPan' – Casebash

+4

+1 cho "đảo ngược ('viewPlan', args = [15]) ".. damn args [] !! – Soask

1

Tôi gặp vấn đề tương tự. Trong trường hợp của tôi, tôi đã quên thêm các url cho ứng dụng con trong tệp urls.py chính:

urlpatterns = [ 
    re_path("admin/", admin.site.urls), 
    re_path(r"^core/", include("core.urls")), 
    re_path(r"^$", welcome, name="welcome") 
] 
Các vấn đề liên quan