Python Django字段错误
如何请求当前用户?我想做一些像Python Django字段错误,python,django,Python,Django,如何请求当前用户?我想做一些像 if user.id == pk # something sinister 其中,pk是url.py中用作正则表达式搜索词的字符串。我希望用户只能通过自己的主键转到分配给他的文件夹。目前,我的半途而废的函数如下所示: def permit(request, pk): u = User.objects.get(user=request.user) if user.id == pk: pass else:
if user.id == pk
# something sinister
其中,pk
是url.py
中用作正则表达式搜索词的字符串。我希望用户只能通过自己的主键转到分配给他的文件夹。目前,我的半途而废的函数如下所示:
def permit(request, pk):
u = User.objects.get(user=request.user)
if user.id == pk:
pass
else:
return render_to_response('forbidden.html')
这是URL.py重定向到的视图函数。但是,这将返回一个错误:
FieldError: Cannot resolve keyword 'user' into field. Choices are: date_joined, document, email, first_name, groups, id, is_active, is_staff, is_superuser, last_login, last_name, logentry, password, user_permissions, username
尝试打印这两个值的pk、request.user.id和type(…)
request.user
已经是用户。您可以检查request.user.is\u authenticated()哦,好的。我更改了代码,现在它总是将我重定向到禁止页面。我的代码现在是“if request.user.id==pk”。我认为传递给函数的这个pk变量与url.py中的regx搜索词是同一个变量,对吗?您必须检查文件夹的user和request.user是否相等。请原谅这些问题,但我怎么做?现在可以了,非常感谢。我想知道出了什么问题。user.id不是整数吗?
if int(request.user.id) == int(pk):
pass