Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.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
Python 我应该在模板和视图中使用Django权限检查吗?_Python_Django - Fatal编程技术网

Python 我应该在模板和视图中使用Django权限检查吗?

Python 我应该在模板和视图中使用Django权限检查吗?,python,django,Python,Django,对模板和视图设置权限是建议的还是多余的 假设对数据库的任何数据操作都是通过POST完成的 以下内容是否足以满足权限要求 {% if perms.system.view_employee %} <!-- content here --> {% else %} <h1>Sorry you do not have permission to access this page<h2> {% endif %} 模板中的签入是服务器端的 模板和视图中

对模板和视图设置权限是建议的还是多余的

假设对数据库的任何数据操作都是通过POST完成的

以下内容是否足以满足权限要求

{% if perms.system.view_employee %}
     <!-- content here -->
{% else %}
     <h1>Sorry you do not have permission to access this page<h2>
{% endif %}
  • 模板中的签入是服务器端的
  • 模板和视图中的权限检查的目的不同:

    • 检查视图的权限将禁止访问整个页面。当此页面及其嵌入的功能是针对APO时,您可以执行此操作。您可以处理资源访问
    • 检查模板中的权限将不允许显示模板的某些部分。当您希望人们能够访问页面,但页面上有些内容您不希望他们看到时,您可以这样做。您可以处理显示
  • 在您的特定示例中,必须对视图设置权限检查,以允许任何人执行此操作。通常,如果使用POST访问视图,则很少需要模板权限检查,因为POST请求本质上是操作

    如果您:

    • 页面的某些部分不允许用户查看(如敏感数据)
    • 希望提高可用性,以显示仅与其权限级别相关的元素(菜单、表单等)。事实上,如果用户没有访问管理员的权限,那么在菜单中显示指向管理员的链接是没有用的
  • 模板中的签入是服务器端的
  • 模板和视图中的权限检查的目的不同:

    • 检查视图的权限将禁止访问整个页面。当此页面及其嵌入的功能是针对APO时,您可以执行此操作。您可以处理资源访问
    • 检查模板中的权限将不允许显示模板的某些部分。当您希望人们能够访问页面,但页面上有些内容您不希望他们看到时,您可以这样做。您可以处理显示
  • 在您的特定示例中,必须对视图设置权限检查,以允许任何人执行此操作。通常,如果使用POST访问视图,则很少需要模板权限检查,因为POST请求本质上是操作

    如果您:

    • 页面的某些部分不允许用户查看(如敏感数据)
    • 希望提高可用性,以显示仅与其权限级别相关的元素(菜单、表单等)。事实上,如果用户没有访问管理员的权限,那么在菜单中显示指向管理员的链接是没有用的

    如何“设置权限”?要添加权限检查,无论如何,没有足够的信息来回答您的问题。如果你用一些代码提供更多信息,你会得到一个很好的答案。如何“设置权限”?无论如何,添加权限检查是错误的,没有足够的信息来回答你的问题。如果你用一些代码提供更多的信息,你会得到一个很好的答案。
    def my_view(request):
        if not request.user.has_perm('polls.can_vote'):
            return HttpResponse("You can't access this page")
        else:
            # do stuff
            ...