2016-03-18 11 views
0

Ich versuche, einen Benutzer, der gerade eingeloggt ist, auf seine/ihre jeweilige Account-Seite umzuleiten.Django - Login und Weiterleitung an Benutzer Profilseite

Diese Frage wurde ein paar Mal gestellt, aber die meisten von ihnen sind alt und verwenden statische URLs wie /accounts/profile/: Django - after login, redirect user to his custom page --> mysite.com/username. Ich möchte dynamische URL-Benennung verwenden, um diese Lösung zu erreichen.

Zum Beispiel, was passiert, wenn die Zielseite meines Kontos das folgende URL-Muster hat?

url(r'^account/(?P<pk>\d+)/(?P<name>\w+)/$', AccountLanding.as_view(), name="account-landing")`. 

Wie würde ich die args in settings.py für LOGIN_REDIRECT_URL passieren?

+0

Ihre Frage wird von Stu auf der von Ihnen verlinkten Seite beantwortet. – Alasdair

+0

@Alasdair Nein, ist es nicht. Der Grund, warum ich das noch einmal gefragt habe, ist zu sehen, ob es seit den letzten 4 Jahren seit der Django-Aktualisierung seither einige neue Entwicklungen gegeben hat, was meiner Meinung nach völlig in Ordnung ist. – thefoxrocks

+0

@Alasdair Stu erwähnt nie, dass, wie Sie sagten, es nicht möglich ist, dynamische Argumente in der 'LOGIN_REDIRECT_URL' zu verwenden, die im Grunde das war, was ich ausprobierte; ob sich das geändert hat oder nicht. – thefoxrocks

Antwort

1

Es ist nicht möglich, dynamische Argumente (z. B. den Primärschlüssel des angemeldeten Benutzers) in LOGIN_REDIRECT_URL zu verwenden.

Eine Arbeit ist um eine Ansicht zu erstellen, die auf der Zielseite umleitet:

from django.contrib.auth.decorators import login_required 
from django.shortcuts import redirect 

@login_required 
def account_redirect(request): 
    return redirect('account-landing', pk=request.user.pk, name=request.user.username) 

ein URL-Muster für diese Ansicht erstellen:

urlpatterns = [ 
    url(r'^account/$', account_redirect, name='account-redirect'), 
] 

Dann diese Ansicht als LOGIN_REDIRECT_URL verwenden:

LOGIN_REDIRECT_URL = 'account-redirect' 
+0

LOGIN_REDIRECT_URL kann auch eine Ansichtsmethode zugewiesen werden, die so eingestellt werden kann, dass sie an 'account-redirect/' weitergeleitet wird, wobei pk eine bestimmte Taste sein kann, die dem Benutzer zugewiesen ist. – RA123

+0

@ RA123 Ich verstehe nicht, was du meinst. Ich habe die Frage erneut geöffnet, falls Sie Ihre eigene Antwort hinzufügen möchten. – Alasdair

+1

Nein, tut mir leid. Ich möchte keine Antwort hinzufügen, da diese Methode veraltet ist. Ich wollte es nur erwähnen, wenn OP es immer noch benutzen möchte. https://docs.djangoproject.com/de/1.9/ref/settings/#login-redirect-url – RA123

Verwandte Themen