0

URL に一致するページを持つ人だけがアクセスできるように、ページを制限しようとしています。

urlconf

url(r'^u/(?P<name>[-\w\d_]+)/edit/$', 'useraccounts.views.user_profile_edit')

ビュー.py

def user_profile_edit(request, name):
    if request.user.is_authenticated() and request.user == name:
        username = User.objects.get(username=name)
        return render(request, 'useredit.html', {'user': username})

の内容print request.userprint nameページの読み込み時にコンソールに出力すると、私の場合、2 つが同じであることがわかります (どちらもroot)。ただし、print bool(request.user == name)が返さFalseれ、その結果、ビューは進行しません。

何が起こっているのですか?また、該当する場合、これを行うためのよりエレガントな方法はありますか?

4

1 に答える 1

1

あなたはそれを間違っていました。request.userはオブジェクトですnameが、 は文字列です。

条件を次のように書き換えます。

if request.user.is_authenticated() and request.user.username == name:
于 2012-08-01T03:59:02.000 に答える