在所有视图django中获取用户上下文?
Posted
技术标签:
【中文标题】在所有视图django中获取用户上下文?【英文标题】:Get the user context in all views django? 【发布时间】:2021-06-08 05:16:39 【问题描述】:我使用模板语法来设置应用程序顶部栏的权限,就像这样
顶栏权限
% if user.is_authenticated %
# Top bar html code
% endif %
但问题是,当我通过身份验证的用户时,如果他们有正确的 url:uuid 链接,他们可以访问其他用户的个人资料图片和姓名。
我设法通过将此语法放入模板中来解决此问题
% if object == request.user %
% if object.pk %
% endif %
% endif %
这解决了可以从个人资料视图访问 request.user 的页面上的问题。如何一次访问所有视图中的 request.user?
【问题讨论】:
不明白你的意思我如何一次访问所有视图中的 request.user?因为你所有的视图都可以访问 request.user。顺便说一句,模板中不要使用request.user
,而只是使用user
问题是答案没有回答问题@TheoMa你的问题是关于视图的,我们在谈论模板:)
它没有用,问题是希望只有正确的登录用户才能在顶部栏中设置信息。因为现在这仅适用于配置文件模板,我认为它是因为用户上下文。当我更改为另一个 URL 时,我无法获取用户实例,因此顶部栏不显示 % if object == request.user % % if object.pk % % endif % % endif %跨度>
解决了这个问题,谢谢,我将模板标签移动到这个命令 % if user.is_authenticated % % if user == request.user % % if user.pk % % endif % % endif % % endif %
【参考方案1】:
解决了我将模板标签移动到这个顺序的问题
% if user.is_authenticated %
% if user == request.user %
% if user.pk % % endif %
% endif %
% endif %
【讨论】:
我几乎可以肯定这是错误的做法。但不知道这些如果不可能告诉之间是什么 是的...这就是我的意思:D以上是关于在所有视图django中获取用户上下文?的主要内容,如果未能解决你的问题,请参考以下文章
对于 Django 模板 %url% 标签,我如何从通用视图上下文中找到所有 URL 参数,而不仅仅是最后一个?