2017-12-09 5 views
0

Ich verwende Django-Authentifizierung. Immer wenn sich ein Benutzer anmeldet, möchte ich ihn nach/profile/user_id umleiten, da er eine Benutzer-ID ist. Ich kann den Wert von user_id von request.user.profile.id erhalten. In settings.py habe ich LOGIN_REDIRECT_URL = 'app_1:index'Django: Umleitung zur Ansicht mit Parametern

app_1/urls.py:

url(r'^profile/$', views.index, name='index'), 
# ex: /profile/5/ 
url(r'^profile/(?P<user_id>[0-9]+)/$', views.profile, name='profile'), 

app_1/views.py (Dinge, die ich auch kommentiert werden habe versucht):

def index(request): 
userid = request.user.profile.id 
#return render(request, 'app_1/index.html', context) 
#return profile(request, request.user.profile.id) 
#return render(request, 'app_1/user_prof.html', {'user': request.user.profile.id}) 
#return redirect(profile, user_id= request.user.profile.id) 
return redirect('profile', user_id=userid) 


def profile(request, user_id): 
user = get_object_or_404(Profile, pk=user_id) 
return render(request, 'app_1/user_prof.html', {'user': user}) 

Ich muss sein etwas fehlt, weil das einfach sein sollte, aber ich bleibe dran. Danke im Voraus.

EDIT: Der Fehler, den ich habe, ist Reverse for 'profile' not found. 'profile' is not a valid view function or pattern name. bekommen: http://dpaste.com/270YRJ9

Antwort

1

Versuchen Sie es mit diesen statt

from django.urls import reverse 

return redirect(reverse('profile', kwargs={"user_id": userid})) 

bearbeiten

Was: return redirect('app_1:profile', user_id=userid)