safe - Django Newbie: "Reverse no encontrado"
templates dirs django (2)
Tengo una línea en forma de Django:
{% for aa in my_array %}
que parece estar provocando este error:
Error de plantilla
Se detectó una excepción al procesar: Invertir para ''dev_env.profiles.views.viewPlan'' con argumentos ''('' '',)'' y no se encontraron los argumentos de las palabras clave ''{}''.
¿Qué significa realmente este mensaje de error?
Sospecho que cualquiera de las dos líneas es correcta, pero el mensaje de error es incorrecto. O el error es real, pero esta línea es una pista falsa.
¿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 reportada era incorrecta), pero el error se activó porque planId estaba vacío en este caso.
¿Tiene una vista llamada viewPlan
con la que hace algo como esto en una plantilla:
{% url viewPlan %}
o algo como esto en una vista:
reverse(''viewPlan'')
Si lo haces y no tienes una línea que se vea así:
url(r''^whatever/url/$'', ''dev_env.profiles.views.viewPlan'', name="viewPlan"),
... en su configuración de url, me imagino que ese es el error que está recibiendo. Como alternativa, y más probablemente, probablemente esté capturando un valor (quizás id o algo) en la URL del plan de visión pero no está pasando un argumento cuando invierte la url. Entonces, si está capturando cualquier valor en la expresión regular, como esto:
url(r''^plans/(/d+)$'', ''dev_env.profiles.views.viewPlan'', name="viewPlan"),
Necesitas llamarlo así:
{% url viewPlan 15 %}
O así:
reverse(''viewPlan'', args=[15]);
Donde 15
es obviamente lo que espera el valor capturado.
Tuve el mismo problema. En mi caso, me olvidé de agregar las URL de 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")
]