2009-03-09 9 views
20

que tienen una línea en forma de Django:Django para principiantes: "No invierta encontrado"

{% for aa in my_array %} 

que parece estar provocando este error:

error Plantilla

detectó una excepción durante la representación: Invertir para 'dev_env.profiles.views.viewPlan' con argumentos '(' ')') y la palabra clave argumentos '{}' no son básicos re.

¿Qué significa realmente este mensaje de error?

Sospecho que la línea es correcta, pero el mensaje de error es incorrecto. O el error es real, pero esta línea es un misterio.

¿Qué demonios debería estar buscando?

Actualización: Paulo ordenó esto, a continuación.

De hecho, tenía un {% url viewPlan planId %} un par de líneas de distancia (por lo que la línea de error informada era incorrecta), pero el error se activó porque planId estaba vacío en este caso.

Respuesta

38

¿Tiene una vista denominada viewPlan con la que se hace algo como esto en una plantilla:

{% url viewPlan %} 

o algo así en una vista:

reverse('viewPlan') 

Si lo haces y te no tiene una línea que se ve así:

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

... en la configuración de su URL lo haría imagina que ese es el error que estás recibiendo. Alternativamente, y más probablemente, probablemente esté capturando un valor (tal vez id o algo) en la URL de ViewPlan, pero no está pasando un argumento al revertir la url. Así que si está capturando cualquier valor en la expresión regular, como esto:

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

Es necesario llamarlo así:

{% url viewPlan 15 %} 

O así:

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

Dónde 15 es obviamente, sea lo que sea lo que el valor capturado está esperando.

+0

gracias, eso me llevó en la dirección correcta. En realidad, solo el argumento que estaba pasando en el {% url estaba vacío en este contexto.Cheers – interstar

+0

También obtendría el mismo error si reemplaza 'viewPlan' con 'viewPan' – Casebash

+4

+1 para "reverse ('viewPlan', args = [15]) "... ¡¡maldita sea args [] !! – Soask

1

Tuve el mismo problema. En mi caso, olvidé agregar las URL para la aplicación secundaria en el archivo principal urls.py:

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