2009-03-09 16 views
20

Mam linię w postaci Django:Django Newbie: "Nie odwracaj znaleziono"

{% for aa in my_array %} 

, który wydaje się być wyzwalanie ten błąd:

błędzie Szablon

Caught wyjątek przy renderowaniu: Odwróć dla 'dev_env.profiles.views.viewPlan' z argumentami '(' ',)' i słowem kluczowym argumenty '{}' nie sąsiednie re.

Co oznacza ten komunikat o błędzie?

Podejrzewam, że albo wiersz jest poprawny, ale komunikat o błędzie jest błędny. Lub błąd jest prawdziwy, ale ta linia jest czerwono-śledzia.

Na co powinienem zwrócić uwagę?

Aktualizacja: Paulo posortowane, poniżej.

W rzeczywistości miałem {% url viewPlan planId %} kilka linii dalej (tak, że zgłaszany wiersz błędu był nieprawidłowy), ale błąd został wyzwolony, ponieważ identyfikator planId był w tym przypadku pusty.

Odpowiedz

38

Czy masz widok o nazwie viewPlan z których można zrobić coś takiego w szablonie:

{% url viewPlan %} 

czy coś takiego w widoku:

reverse('viewPlan') 

Jeśli zrobisz to i was nie ma linii wyglądającej następująco:

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

... w konfiguracji adresu URL wyobraź sobie, że to błąd, który otrzymujesz. Alternatywnie, i prawdopodobnie, przechwytujesz wartość (może id lub coś) w adresie URL widoku, ale nie przekazujesz argumentu podczas cofania adresu URL. Więc jeśli przechwytywanie wszelkich wartości w regex, tak:

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

Trzeba nazwać tak:

{% url viewPlan 15 %} 

Albo tak:

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

Gdzie 15 jest oczywiście bez względu na oczekiwaną wartość.

+0

dziękuję, że zabrałeś mnie we właściwym kierunku. To był tylko argument, który podałem w {% url był pusty w tym kontekście. Je¶li – interstar

+0

Taki sam błąd wystąpi ±, jeśli zastąpisz "viewPlan" przez "viewPan" – Casebash

+4

+1 dla "reverse (" viewPlan ", args = [15]) ".. to cholerne args [] !! – Soask

1

Miałem ten sam problem. W moim przypadku zapomniałem dodać adresy URL aplikacji dla dzieci w głównym pliku urls.py:

urlpatterns = [ 
    re_path("admin/", admin.site.urls), 
    re_path(r"^core/", include("core.urls")), 
    re_path(r"^$", welcome, name="welcome") 
]