0

このコードを使用して、ログイン/認証されたユーザーを検証してい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)

ユーザーを検証する別の方法 (コードを減らす) はありますか?それともすべてのビューにそれを配置する必要がありますか?

4

1 に答える 1

1

request.userwithlogin_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)
    # ...
于 2012-04-07T04:16:41.943 に答える