Bil*_*hir 1 django django-rest-framework
我正在使用 Django 2.0 。我已经创建了用户组,现在我想使用用户组来限制视图。哪个是解决这个问题的最佳方法?
如果您只希望属于特定组的用户能够访问view,则可以使用UserPassesTestMixin. 下面的例子中,某个用户只有在他属于该YourGroupName组的情况下才能访问该视图(我这样命名是因为我不知道你自己是怎么命名的)
from django.contrib.auth.mixins import UserPassesTestMixin, LoginRequiredMixin
class ToolsView(LoginRequiredMixin, UserPassesTestMixin, FormView):
# ...
def test_func(self):
return self.request.user.groups.filter(name='YourGroupName').exists()
Run Code Online (Sandbox Code Playgroud)
如果你想使用基于函数的视图而不是基于类的视图,那么你可以这样做:
from django.contrib.auth.decorators import login_required, user_passes_test
@login_required
@user_passes_test(lambda u: u.groups.filter(name='YourGroupName').exists())
def my_view(request, pk):
# ....
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1684 次 |
| 最近记录: |