2009-03-09 7 views
20

J'ai une ligne sous une forme Django:Django Débutant: "Reverse not found"

{% for aa in my_array %} 

qui semble déclencher cette erreur:

erreur de modèle

Pris une exception lors du rendu: Inverser pour 'dev_env.profiles.views.viewPlan' avec arguments '(' ',)' et mot-clé arguments '{}' non foun ré.

Que signifie vraiment ce message d'erreur?

Je suppose que la ligne est correcte, mais le message d'erreur est faux. Ou l'erreur est réelle mais cette ligne est un rouge-hareng.

Que diable devrais-je rechercher?

Mise à jour: Paulo a trié ceci, ci-dessous.

En fait, j'avais un {% url viewPlan planId %} à quelques lignes de distance (donc la ligne d'erreur signalée était erronée), mais l'erreur a été déclenchée car planId était vide dans ce cas.

Répondre

38

Avez-vous une vue nommée viewPlan avec laquelle vous faites quelque chose comme ça dans un modèle:

{% url viewPlan %} 

ou quelque chose comme ça dans une vue:

reverse('viewPlan') 

Si vous faites cela et vous ne pas avoir une ligne qui ressemble à ceci:

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

... dans votre configuration d'url je voudrais Imaginez que c'est l'erreur que vous obtenez. Alternativement, et plus probablement, vous capturez probablement une valeur (peut-être id ou quelque chose) dans l'URL viewPlan mais ne passez pas un argument lors de l'inversion de l'URL. Donc, si vous capturez des valeurs dans l'expression régulière, comme ceci:

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

Vous devez appeler comme ceci:

{% url viewPlan 15 %} 

Ou comme ceci:

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

15 est évidemment, quelle que soit la valeur capturée attend.

+0

merci, cela m'a pris dans la bonne direction. C'était en fait l'argument que je passais dans le {% url était vide dans ce contexte.Cheers – interstar

+0

Vous obtiendrez également la même erreur si vous remplacez 'viewPlan' par 'viewPan' – Casebash

+4

+1 pour "reverse ('viewPlan', args = [15]) ".. que damn args [] !! – Soask

1

J'ai eu le même problème. Dans mon cas, j'avais oublié d'ajouter les urls pour l'application enfant dans le fichier urls.py principal:

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