Python 在没有数据库的Django中进行身份验证

Python 在没有数据库的Django中进行身份验证,python,django,python-3.x,django-authentication,Python,Django,Python 3.x,Django Authentication,我有一个Django应用程序,它完全从API获取数据。所以我不必使用数据库。会话数据存储在已签名的cookie上。我试图在文档上编写自定义用户模型和自定义身份验证后端,但出现以下错误: django.core.exceptions.impropertlyconfigured:AUTH\u USER\u MODEL指的是尚未安装的模型“my\u app.MyUser” My settings.py: AUTH_USER_MODEL = 'my_app.MyUser' AUTHENTICATION_

我有一个Django应用程序,它完全从API获取数据。所以我不必使用数据库。会话数据存储在已签名的cookie上。我试图在文档上编写自定义用户模型和自定义身份验证后端,但出现以下错误:
django.core.exceptions.impropertlyconfigured:AUTH\u USER\u MODEL指的是尚未安装的模型“my\u app.MyUser”

My settings.py:

AUTH_USER_MODEL = 'my_app.MyUser'
AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend',
                           'my_app.backends.LoginAuthBackend',)
models.py:

class MyUser(object):
    def save(self):
        pass
    objects = None
    username = ""
在这里,如果尝试使用django中的AbstractUser而不是Object,我会得到以下错误:
AttributeError:'NoneType'对象没有属性'\u meta'
,或者db表没有退出

backends.py

class LoginAuthBackend(object):
    def authenticate(self, username=None, password=None):
        if username and password:
           try:
               response = my_auth_function(username, password)
               if response.status_code == 200:
                   token = response.get('my_key')
                   user = MyUser()
                   return user
            except MyCustomException:
                  return None
这让我发疯。看起来Django没有DB很难使用

编辑
经过多次尝试后,解决此问题的简单方法是从
AUTHENTICATION\u backends
中删除
'django.contrib.auth.backends.modelbend'
,并从设置中删除
auth\u USER\u MODEL
。模型基本上以相同的方式继续。工作平稳

默认的身份验证后端处理器集在
身份验证\u后端
设置中定义。有关详细信息,请参阅Django文档

默认情况下,身份验证\u后端设置为:

['django.contrib.auth.backends.ModelBackend']
这是检查Django用户数据库并查询内置权限的基本身份验证后端


因此,如果您不希望使用
django.contrib.auth.backends.modelbend
身份验证方法,请将其从列表中删除。您可能希望找到(或创建)一个不同的数据库并将其添加到列表中。

是的,Django非常依赖数据库。它是这样设计的。看起来Django身份验证系统真的希望您拥有一个用户模型,没有它就无法工作。您可以更努力地欺骗Django接受一个伪模型,但您必须实现一系列特定于模型实例和查询集的接口。