Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Django,如何在javascript中检测管理员?_Javascript_Django_Django Templates - Fatal编程技术网

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

使用Django,如何在javascript中检测管理员?,javascript,django,django-templates,Javascript,Django,Django Templates,我的JavaScript中有一些功能,我不希望普通用户可以使用,而且只对管理员/工作人员使用。理想情况下,我可以创建一个布尔变量,它是真/假,这取决于请求用户是否为staff,但是我应该如何设置这个布尔值 注意:我不是为了安全而禁用它们,只是为了用户体验。您可以尝试在js中使用过滤器,例如: var is_staff = {{ request.user.is_staff|yesno:"true,false" }} Javascript可以通过浏览器查看和操作(在大多数浏览器上点击F12,您可以

我的JavaScript中有一些功能,我不希望普通用户可以使用,而且只对管理员/工作人员使用。理想情况下,我可以创建一个布尔变量,它是真/假,这取决于请求用户是否为staff,但是我应该如何设置这个布尔值

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

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

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

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


我建议您在显示页面之前检查用户服务器端,并仅当相关Javascript函数具有正确的访问权限时才将其放在页面上。你可以通过两种不同的观点来做到这一点。然后,我还要确保对服务器的任何调用都会在服务器端检查是否有适当的访问权限。

将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 %}
{%block javascript%}
var isStaff={{user.is_staff};
//全局函数,如果用户是职员,则调用所需函数
isUserStaff(isUserStaff);
{%endblock javascript%}