实现一个函数来测试给定的url当前是否对给定的用户可见。
django-page-visibilit的Python项目详细描述
django_page_可见性
这个包实现了一个标准协议,允许开发人员询问“用户X当前是否可以访问Y页?”。在
不是重复在该视图中执行的权限检查,而是询问视图本身用户是否可以访问它。在
一致意见
一致性视图必须实现.test_page_visibilty(request, *args, **kwargs)
方法。将使用与调用实际视图相同的args
和{
如果用户可以访问页面,则此方法必须返回一个truthy值,否则返回False。它还可能引发异常,指示用户无法访问该页面。见下文PAGE_VISIBILITY_EXCEPTIONS
。在
测试功能
开发人员可以调用django_page_visibility.is_visible_to_user(path, user)
(有关详细信息,请参阅代码)来测试可见性。或者,在模板中,您可以使用我们的is_permitted_to_see
过滤器或permitted_link
标记。在
PAGE_VISIBILITY_EXCEPTIONS
设置
默认情况下,如果引发django.http.Http404
或{False
。您可以通过(在django设置中)PAGE_VISIBILITY_EXCEPTIONS
设置为异常类的列表来覆盖它。在
我们希望大多数用户覆盖此设置。例如,如果您正在使用exceptional_auth
和django_early_return
,那么您需要设置:
PAGE_VISIBILITY_EXCEPTIONS=['django.core.exceptions.PermissionDenied','django.http.Http404','django_early_return.EarlyReturn','exceptional_auth.AuthException',]
- 项目
标签: