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



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

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

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

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

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

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

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

例如:

索引.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 %}

相关内容

最新更新