我正在使用此代码验证views.py
中已登录/已验证的用户。
@login_required
def my_view(request, username):
try:
user = User.objects.get(username=username)
except User.DoesNotExist:
raise Http404(u'User not Found')
if user == request.user and request.user.is_authenticated():
variables = RequestContext(request, {})
return render_to_response('my_template.html', variables)
是否有其他方式(即代码较少)来验证用户,或者我是否需要将其放在每个视图中?
答案 0 :(得分:1)
request.user
login_required
,您无需再按用户名再次检查,因此无需检查is_authenticated
。如果您只想渲染具有不同用户类型逻辑的页面,请尝试下面的代码,如果没有,请使用request.user
。此外,请使用get_object_or_404
和render
快捷方式。
from django.shortcuts import get_object_or_404, render
@login_required
def my_view(request, username):
if username == request.user.username:
return render(request, 'my_template.html', {})
# render the page of user who is not request.user
user = get_object_or_404(User, username=username)
# ...