Python 如何获取所有Django REST框架权限类?

Python 如何获取所有Django REST框架权限类?,python,django,python-3.x,django-rest-framework,Python,Django,Python 3.x,Django Rest Framework,使用/manage.py shell启动Django shell后,我在应用程序中看不到任何自定义权限子类: In [1]: from rest_framework.permissions import BasePermission In

使用
/manage.py shell启动Django shell后,我在应用程序中看不到任何自定义权限子类:

In [1]: from rest_framework.permissions import BasePermission                                                                                                                                  
In [2]: BasePermission.__subclasses__()                                                                                                                                                        
Out[2]: 
[rest_framework.permissions.AllowAny,
 rest_framework.permissions.IsAuthenticated,
 rest_framework.permissions.IsAdminUser,
 rest_framework.permissions.IsAuthenticatedOrReadOnly,
 rest_framework.permissions.DjangoModelPermissions]
如何获取所有权限类,包括自定义权限类?


我正在编写一个自定义管理命令来列出所有现有权限及其使用方式,因此我需要某种方法来加载整个应用程序,而不是单独导入每个文件。

我认为这是因为您没有导入这些子类,因此python解释器不知道有任何自定义的
BasePermission
子类

最初,我自己使用包中的
python manage.py shell\u plus
命令测试了这一点,该命令在启动shell时导入所有模型。然后,当我运行
BasePermission.\uu子类\uuu()
时,它列出了我所有的自定义权限

然后我尝试了
python manage.py shell
,运行了相同的代码,结果与您的相同


因此,如果您的所有权限都在一个文件中,或者是一个文件模式,例如
/permissions.py
,那么您应该导入所有这些权限文件(从app_folder.permissions import*
),然后尝试
BasePermission.\uu子类

当你说自定义命令时,你是指django管理命令吗?你的权限类是在每个应用程序的
permissions.py
文件中,还是分布在不同的文件中?i、 e.是否有任何
views.py
文件包含自定义权限类定义?@a.J.Parr我认为它们都在permissions.py中,但我绝对不想不安全地假设总是这样。