Domanda

Sto utilizzando l'autenticazione di Django, e nel modello login.html, la seguente dichiarazione è generare un errore:

{% url 'django.contrib.auth.views.login' %}

TemplateSyntaxError a / login

Preso NoReverseMatch mentre il rendering:. Inversa per '' django.contrib.auth.views.login '' con argomenti '()' e argomenti a parola chiave '{}' non trovato

Questo URL viene definito nel mio urls.py:

(r'^login$', 'django.contrib.auth.views.login')

Ho installato il sistema di autenticazione:

INSTALLED_APPS = (
    'django.contrib.auth',
...
)

Tutte le idee?

È stato utile?

Soluzione

Come di Django 1.10:

A partire dal Django 1.10, non è più possibile utilizzare la stringa nella 'django.contrib.auth.views.login' url() o tag {% url %}.

In primo luogo, cambiare i modelli di URL per utilizzare il callable, e il nome del modello di URL. Ad esempio:

from django.contrib.auth import views as auth_views

url_patterns = [
    url(r'^login$', auth_views.login, name='login'),
]

Poi aggiornare il tag url di utilizzare lo stesso nome:

{% url 'login' %}

Come di Django 1.5:

Non hai bisogno {% load url from future %} più, basta usare la sintassi citato ({% url 'django.contrib.auth.views.login' %}) e il gioco è fatto (si veda il Django 1.5 note di rilascio ).

Come di Django 1.3:

Si noti che come di Django 1.3 (come Karen Tracey punti su sotto ), il modo corretto per risolvere questo problema è quello di aggiungere:

{% load url from future %}

nella parte superiore del vostro modello e quindi utilizzare:

{% url 'django.contrib.auth.views.login' %}

Prima di Django 1.3:

A giudicare da quel messaggio di errore (notare le virgolette singole in tutto il percorso alla vista), direi che il {% url ... %} tag non vuole citazioni, provare:

{% url django.contrib.auth.views.login %}

Altri suggerimenti

La sintassi con le citazioni è di nuovo in Django 1.3. Il modo corretto per correggere l'errore in 1.3 in avanti sarebbe quello di incldue {url carico% dalla futura%} nel template.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top