Pergunta

Eu tenho uma linha em um formulário Django:

{% for aa in my_array %}

que parece estar provocando este erro:

erro Template

Caught uma exceção durante o processamento: reverter para 'Dev_env.profiles.views.viewPlan' com argumentos '(' ')' e palavra-chave argumentos '{}' não foi encontrado.

O que esta mensagem de erro significa realmente?

Eu suspeito que seja a linha está correta, mas a mensagem de erro é errado. Ou o erro é real, mas esta linha é uma pista falsa.

O que na terra que eu deveria estar procurando?

Update: Paulo ordenados isto, abaixo

.

Na verdade, eu tinha uma {% url viewPlan planId %} um par de linhas longe (para que a linha de erro relatado foi errado), mas o erro foi provocado porque planId estava vazio neste caso.

Foi útil?

Solução

Você tem uma vista nomeada viewPlan com o qual você fazer algo como isto em um template:

{% url viewPlan %}

ou algo assim em um ponto de vista:

reverse('viewPlan')

Se você fizer isso e você não tem uma linha parecida com esta:

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

... na sua configuração url eu imagino que é o erro que você está recebendo. Alternativamente, e mais provável, provavelmente você está capturando um valor (talvez id ou algo assim) na viewPlan URL, mas não estão passando um argumento quando revertendo a url. Então, se você está capturando todos os valores na expressão regular, como este:

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

Você precisa chamá-lo assim:

{% url viewPlan 15 %}

Ou assim:

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

Onde 15 é, obviamente, qualquer que seja o valor capturado está esperando.

Outras dicas

Eu tive o mesmo problema. No meu caso, eu tinha esquecido para adicionar as URLs para o aplicativo criança no arquivo urls.py principal:

urlpatterns = [
    re_path("admin/", admin.site.urls),
    re_path(r"^core/", include("core.urls")),
    re_path(r"^$", welcome, name="welcome")
]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top