Импорт пользовательского модуля в настройки django со строковым путем
У меня есть файл permissions.py
в моем основном приложении в django, который я хочу использовать его класс My_has_permission
для разрешений на уровне проекта в settings.py
. обратите внимание, settings.py
и permissions.py
находятся в одной папке. поэтому я попробовал
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'.permissions.My_has_permission',
]
}
но он выдал эту ошибку: TypeError: the 'package' argument is required to perform a relative import for
Итак, как я могу иметь этот пакет в качестве моего DEFAULT_PERMISSION_CLASSES
?
здесь я объясняю свои попытки:
Я хочу противоположного тому, что делает
importlib.import_module('.a', package='b')
также сделать еще один
ss.py
и с
from .permissions import My_has_permission
print(My_has_permission.__file__)
попытался получить путь, но выдал ошибку: ImportError: attempted relative import with no known parent package
, эта ошибка не потому, что djangorestframework
не установлен. обратите внимание, я говорю это, потому что я использовал некоторые импорты из rest_framework
. кроме того, ошибка от from .permissions import My_has_permission
в ss.py
Итак, мой вопрос - это моя ошибка permissions.py
?
from rest_framework import permissions
PERMS_MAP = {
# 'OPTIONS': 'view_',
'HEAD': 'view_',
'GET': 'view_',
'DELETE': 'delete_',
'PATCH': 'change_',
'POST': 'add_',
'PUT': 'change_'
}
class My_has_permission(permissions.BasePermission):
app_label = view.queryset.model._meta.app_label
model_name = view.queryset.model._meta.model_name
return request.user.has_perm(str(self.app_label+'.'+PERMS_MAP[request.method]+self.model_name)) or request.user.is_admin or request.user.is_superuser