【问题标题】:Using Django, how can I detect an admin in my javascript?使用 Django,如何在我的 javascript 中检测到管理员?
【发布时间】:2018-01-28 15:46:48
【问题描述】:

我的 JavaScript 中有一些函数,我不希望普通用户可以使用这些函数,并且只对管理员/员工可用。理想情况下,我可以创建一个布尔变量,该变量是真/假,具体取决于请求用户是否为员工,但我将如何设置这个布尔变量?

注意:我并不是为了安全起见而禁用它们,而只是为了用户体验。

【问题讨论】:

    标签: javascript django django-templates


    【解决方案1】:

    你可以尝试在js里面使用yesno过滤器,例如:

    var is_staff = {{ request.user.is_staff|yesno:"true,false" }}
    

    【讨论】:

      【解决方案2】:

      可以通过浏览器查看和非常轻松地操作Javascript(在大多数浏览器上按F12,您可以轻松调试和更改标志)。

      我建议您在显示您的页面之前检查用户服务器端,并仅在它们具有正确访问权限的情况下将相关的 Javascript 函数放在页面上。您可以通过两种不同的视图来做到这一点。然后,我还会确保对服务器进行的任何调用都经过服务器端检查以获得适当的访问权限。

      【讨论】:

        【解决方案3】:

        将 Django 变量传递给 JavaScript 的最简单方法是在 JS 文件中声明一个全局函数并在模板文件中调用它。

        例如:

        index.html

        {% block javascript %}
          <script>
           var isStaff = {{user.is_staff}};
           // Global function which calls your required function if user is a staff
           isUserStaff(isUserStaff);
          </script>
        {% endblock javascript %}
        

        【讨论】:

          猜你喜欢
          • 2015-05-14
          • 2013-05-16
          • 2012-03-09
          • 2016-01-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-22
          • 2012-08-08
          相关资源
          最近更新 更多