سؤال

أضفت بعض الأذونات إلى المستخدم عبر واجهة المسؤول.

من بعض الأسباب تفشل جميع وظائف 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):

يجب ان يكون بخير.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top