使用Django,如何在我的javascript中检测管理员?

时间:2017-08-20 12:52:04

标签: javascript django django-templates

我的JavaScript中有函​​数,我不希望普通用户可以使用这些函数,只有管理员/员工可以使用。理想情况下,我可以根据请求用户是否为人员来创建一个真/假的布尔变量,但是如何设置此布尔值呢?

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

3 个答案:

答案 0 :(得分:3)

您可以尝试在js中使用yesno过滤器,例如:

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

答案 1 :(得分:1)

可以通过浏览器查看和轻松操作Javascript(在大多数浏览器上点击F12,您可以轻松调试和更改标记)。

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

答案 2 :(得分:0)

将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 %}