مستخدم Django get_all_permissions () فارغ أثناء تعيين user_permissions
-
21-09-2019 - |
سؤال
أضفت بعض الأذونات إلى المستخدم عبر واجهة المسؤول.
من بعض الأسباب تفشل جميع وظائف PERM ، على سبيل المثال
>>> user.get_all_permissions()
set([])
لكن الوصول إلى الجدول مباشرة ، يعمل:
>>> user.user_permissions.all()
(list of permissions as expected)
ما الذي يمكن أن يتسبب في فشل "get_all_permissions" (وجميع وظائف PERM مثل HAS_PERM ())؟
شكرًا
المحلول
كان نفس المشكلة. أظن أنه في مرحلة ما كنت قد استخدمت مصادقة مصنوعة ذاتيا؟ معظم الأمثلة على شبكة هذا (بما في ذلك وثائق Django 1.0!) لا تذكر أن الخلفية هي المسؤولة عن التعامل مع الأذونات أيضًا.
ومع ذلك ، لا يوجد biggie: في أي ملف خلفي يتواجد الكود الخاص بك ، قم بتضمين هذا الاستيراد:
from django.contrib.auth.backends import ModelBackend
ثم تأكد من أن الواجهة الخلفية التي كتبتها يمتد NOMMERBACKEND ، على سبيل المثال:
class EmailBackend(ModelBackend):
يجب ان يكون بخير.
لا تنتمي إلى StackOverflow