2017-09-10 21 views
0

J'utilise Django 1.11 et je suis nouveau. J'utilise les fonctions de connexion et de déconnexion par défaut.url pour les comptes/profil dans Django

Lorsque je me connecte, il redirige vers accounts/profile et génère ensuite erreur

Using the URLconf defined in myapp.urls, Django tried these URL patterns, in this order: 

^ ^login/$ [name='login'] 
^ ^logout/$ [name='logout'] 
^ ^password_change/$ [name='password_change'] 
^ ^password_change/done/$ [name='password_change_done'] 
^ ^password_reset/$ [name='password_reset'] 
^ ^password_reset/done/$ [name='password_reset_done'] 
^ ^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$ [name='password_reset_confirm'] 
^ ^reset/done/$ [name='password_reset_complete'] 
^ ^$ [name='home'] 
^pages/ 
^search/ 
^admin/ 

The current path, accounts/profile/, didn't match any of these. 

est accounts fonction intégrée dans Django?

Si oui, comment accéder à l'adresse accounts? Si non, pourquoi est-ce là?

Edit 2 : url pattern from myapp.urls.py

urlpatterns = [ 
    url('^', include('django.contrib.auth.urls')), 
    url('^', include('pages.urls')), 
    url(r'^pages/', include('pages.urls')), 
    url(r'^search/', include('search.urls')), 
    url(r'^admin/', admin.site.urls), 
] 
+0

il serait utile de voir votre code ... et vos URLs –

+0

voir 'Edit 2' en question. everthing fonctionne bien, ma question porte sur 'accounts' –

Répondre

0

Par défaut, connectez-vous réussi à Django redirige vers:

  • URL passée en paramètre ?next= dans l'URL, ou
  • URL spécifiée comme settings.LOGIN_REDIRECT_URL autrement.

Code pertinent: LoginView.get_success_url()

+0

Oui, je suis familier avec cela et j'ai déjà défini' LOGIN_REDIRECT_URL' Je veux créer une page de profil utilisateur connecté et je pense que cela peut être facilement atteint si ' accounts' est une application intégrée –

+0

Non, il n'y a pas d'application intégrée 'accounts', il n'y a que' django.contrib.auth'. – Kos

0

Error: As profile page is yet not there, so it's giving error.

Pour éviter toute erreur après redirect, où que vous écrivez pour lien login écrire comme ça.

<a href="{% url 'login' %}?next={{request.path}}">Login</a> 

Maintenant, il sera redirigé vers la page d'où la connexion est cliqué après la connexion réussie. Idéalement, cela devrait se produire, car vous voulez revenir à la page d'où vous avez cliqué sur la connexion.

Vous pouvez aussi mettre le lien de redirection manuellement comme,

<a href="{% url 'login' %}?next=/">Login</a> 

Maintenant, il va toujours aller à la page d'accueil après une connexion réussie.

0

Les comptes d'URL sont normalement fournis avec le package django-registration. Pour mon cas, il est implémenté en tant que url(r'^accounts/', include('registration.backends.simple.urls')),. De là, la redirection fonctionne. c'est-à-dire les comptes/login, comptes/registre etc. Voir le documentation