DjangRolePermission重复查询

2024-04-26 03:40:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我在我的django项目中使用django角色权限,并通过decorator控制对视图的访问,如下所示:

@canAccessDashboard
def index(request):
    """ Merchant settings main page"""
    try:
        return render(request, 'dashboard/merchantsettings.html')
    except Exception as e:
        return HttpResponse('NOK', status=500)

decorator`canAccessDashboard如下所示:

^{pr2}$

问题是,每当我使用decorator获得8个重复查询时,下面是从django debug工具栏提取的查询:

SELECT ••• FROM "auth_permission" INNER JOIN "auth_user_user_permissions" ON ("auth_permission"."id" = "auth_user_user_permissions"."permission_id") INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_user_user_permissions"."user_id" = 16 ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC
Duplicated 8 times.

SELECT ••• FROM "auth_permission" WHERE ("auth_permission"."content_type_id" = 4 AND "auth_permission"."codename" = 'add_merchant_address')
Duplicated 8 times

SELECT ••• FROM "auth_permission" WHERE ("auth_permission"."content_type_id" = 4 AND "auth_permission"."codename" = 'immediate_cashout')
Duplicated 8 times.

SELECT ••• FROM "auth_permission" WHERE ("auth_permission"."content_type_id" = 4 AND "auth_permission"."codename" = 'access_dasboard') Duplicated 8 times

它似乎正在为available_permissions中定义的每个权限查询数据库

^{3}$

如何使用django-role-permissions是个问题吗?如何减少重复查询?在

谢谢。在


Tags: djangofromauthidpermissionstypedecoratorcontent