小编rsd*_*rsd的帖子

如何在 django-tables2 列中使用用户权限

使用 djang-tables2 自定义表作为:

表.py:

import django_tables2 as tables
from django_tables2.utils import A
from .models import Person

class PersonTable(tables.Table):

    view_column = tables.LinkColumn('person:pessoas_detail', args=[A('pk')])

    class Meta:
        model = Person
Run Code Online (Sandbox Code Playgroud)

视图.py:

from .models import Person

class ListView(SingleTableView):
    model = Person
    table_class = PersonTable
Run Code Online (Sandbox Code Playgroud)

我需要检查 view_column 上的 FOO 权限。因为 view_column 是一个类属性,我不能使用装饰器作为@permission_required。

可能我可以调用除 tables.LinkColumn 之外的其他内容来测试权限,然后返回该列。但是,为了做到这一点,我需要访问用户对象(可能来自请求对象),此时我无权访问。

有没有更简单的方法来做到这一点?

基本上,这个想法是仅在有权限访问或根本不显示时才显示列。

python django permissions django-class-based-views django-tables2

4
推荐指数
1
解决办法
1223
查看次数