【问题标题】:Get the user context in all views django?在所有视图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 %}

标签: django django-models django-rest-framework django-views django-templates


【解决方案1】:

解决了我将模板标签移动到这个顺序的问题

{% if user.is_authenticated %}
    {% if user == request.user %}
        {% if user.pk %}    {% endif %}
                                    {% endif %}
                                
                                    {% endif %}

【讨论】:

  • 我几乎可以肯定这是错误的做法。但不知道这些如果不可能告诉之间是什么
  • 是的...这就是我的意思:D
猜你喜欢
  • 2014-06-30
  • 1970-01-01
  • 1970-01-01
  • 2015-02-09
  • 2020-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多