Áng*_*llo 2 python authentication django
我正在使用 Django 身份验证。每当用户登录时,我想将他重定向到 /profile/user_id,将 user_id 设为一个数字。我可以通过request.user.profile.id. 在 settings.py 我有LOGIN_REDIRECT_URL = 'app_1:index'
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'),
Run Code Online (Sandbox Code Playgroud)
app_1/views.py(我也尝试过的东西被评论了):
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})
Run Code Online (Sandbox Code Playgroud)
我一定遗漏了一些东西,因为这应该很容易,但我一直坚持下去。提前致谢。
编辑:我得到的错误是Reverse for 'profile' not found. 'profile' is not a valid view function or pattern name.:http : //dpaste.com/270YRJ9
尝试改用这个
from django.urls import reverse
return redirect(reverse('profile', kwargs={"user_id": userid}))
Run Code Online (Sandbox Code Playgroud)
编辑
关于什么: return redirect('app_1:profile', user_id=userid)
| 归档时间: |
|
| 查看次数: |
10670 次 |
| 最近记录: |