【发布时间】:2018-03-29 00:17:44
【问题描述】:
我正在尝试在 django 中设置一个索引页面,该页面根据用户权限(2 种以上类型的用户)提供不同的内容。我已经研究过使用 @permission_required 装饰器,但是将它与大部分重复的视图一起使用似乎有点浪费和重复。我也看不到好的后备方法(我不能做@permission_required(!'jobs.can_edit'))。
views.py:
@permission_required('jobs.can_add')
def index(request):
jobs = Job.objects.all
context = {
"jobs": jobs,
}
return render(request, 'jobs/index.html', context)
@permission_required('jobs.can_edit')
def index(request):
jobs = some.different.data
context = {
"jobs": jobs,
}
return render(request, 'jobs/index.html', context)
有没有更简单的方法可以将它挂接到索引函数并根据用户权限更改上下文?我的理想场景应该是这样的
想象的views.py:
def index(request):
if user.can_add:
context = x
return render(request, 'jobs/index/can-add.html', context)
context = y
return render(request, 'jobs/index/can-edit.html', context)
我还按名称设置了三个用户组,但我没有看到太多关于访问组名的文档。
【问题讨论】: