我正在尝试限制页面,因此只有页面与URL匹配的人才能访问它:
URL配置
url(r'^u/(?P<name>[-\w\d_]+)/edit/$', 'useraccounts.views.user_profile_edit')
views.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.user
和print name
的内容到控制台显示两者在我的情况下是相同的(都是root
)。但是,print bool(request.user == name)
会返回False
,因此视图不会进展。
发生了什么,如果适用,是否有更优雅的方式来做这件事?
答案 0 :(得分:1)
你做错了。 request.user
是一个对象,而name
是一个字符串。
重写您的条件如下:
if request.user.is_authenticated() and request.user.username == name: