Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Django中没有数据库的身份验证

在Django中没有数据库的身份验证
EN

Stack Overflow用户
提问于 2016-04-11 10:17:36
回答 1查看 3.7K关注 0票数 14

我有一个Django应用程序,它完全从apis获取数据。所以我不用用数据库。会话数据存储在签名的cookie上。我试图编写一个自定义用户模型和一个定制的auth后端,就像在文档上那样,但是我得到了以下错误:django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL refers to model 'my_app.MyUser' that has not been installed

我的settings.py:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
AUTH_USER_MODEL = 'my_app.MyUser'
AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend',
                           'my_app.backends.LoginAuthBackend',)

models.py:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class MyUser(object):
    def save(self):
        pass
    objects = None
    username = ""

在这里,如果尝试使用来自django的AbstractUser而不是对象,我得到了以下错误:AttributeError: 'NoneType' object has no attribute '_meta'或db表不退出。

backends.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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就不容易使用。

编辑

经过几次尝试后,解决这个问题的一个简单方法是将'django.contrib.auth.backends.ModelBackend'AUTHENTICATION_BACKENDS中删除,从设置中删除AUTH_USER_MODEL。这种模式基本上是一样的。工作平稳

EN

回答 1

Stack Overflow用户

发布于 2017-06-07 22:08:32

AUTHENTICATION_BACKENDS设置中定义了默认的身份验证后端处理器集。请参阅自定义认证的Django文档。

默认情况下,AUTHENTICATION_BACKENDS设置为: 'django.contrib.auth.backends.ModelBackend‘ 这是检查Django用户数据库并查询内置权限的基本身份验证后端。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36556226

复制
相关文章
Django-DRF | 身份验证
Django REST框架构建Web API。Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
小团子
2020/02/20
1.3K0
Django-DRF | 身份验证
Kerberos 身份验证在 ChunJun 中的落地实践
Kerberos,在古希腊神话故事中,指的是一只三头犬守护在地狱之门外,禁止任何人类闯入地狱之中。
袋鼠云数栈
2022/12/16
1.6K0
Celery在Django中的简单应用
Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,专注于实时处理的异步任务队列。同时也支持任务调度。需要注意的是,celery并不支持Windows,所以Windows相关的问题很可能在官方无法得到回应。
仙人技术
2020/08/03
2.5K0
借Djongo之力,在Django中无痛使用MongoDB数据库
Django框架为我们提供了简洁方便的ORM模型供我们对数据库进行各种操作,但是这个“数据库”却并不包括NoSQL的典型——MongoDB。
州的先生
2019/11/21
12K1
借Djongo之力,在Django中无痛使用MongoDB数据库
Django Sqlite 数据库,在已有表中添加新字段
可以通过 migrate 传递上一次迁移的编号来撤销迁移。 例如,要撤销最近一次迁移 0020_auto_20220520_1511,进入迁移文件,找到dependencies中信息
沈宥
2022/06/21
4K0
Django Sqlite 数据库,在已有表中添加新字段
在eclipse中没有server(需在选项中设置)
①在软件eclipse下的Help->InstallNew Software->中,在Work with中点击Add,如下,加入
全栈程序员站长
2022/07/25
3.9K0
在eclipse中没有server(需在选项中设置)
Python 的 Descriptor 在 Django 中的使用
这篇通过Django源码中的cached_property来看下Python中一个很重要的概念——Descriptor(描述器)的使用。想必通过实际代码来看能让人对其用法更有体会。
the5fire
2019/03/01
4.3K0
Django REST Framework-基于Basic的身份验证
在Django REST Framework中,BasicAuthentication是最简单的身份验证之一,它基于HTTP基本身份验证标准。
玖叁叁
2023/04/25
6720
Django中数据库的相关操作
year、month、day、week_day、hour、minute、second:对日期时间类型的属性进行运算。
小闫同学啊
2019/07/18
2.2K0
Django中数据库的相关操作
Django REST Framework-基于Session的身份验证
Django REST Framework支持多种身份验证方法,其中一种是基于Session的身份验证。使用基于Session的身份验证,您需要使用Web浏览器发送请求。在每个请求中,浏览器将自动在Cookie中发送Session ID,从而实现身份验证。
玖叁叁
2023/04/25
6210
99 - 在Django中读写Session
请解释Session的概念,以及如何在Django中读写Session Session(服务端, key-value) Cookie(Map, key-value) # session.py from django.http import HttpResponse def writeSession(request): request.session['name'] = 'Bill' request.session['age'] = 20 return HttpResponse('wr
ruochen
2021/06/27
1.4K0
99 - 在Django中读写Session
在 PostgreSQL 中解码 Django Session
会话(session)是任何基于 HTTP 的 web 框架的重要组成部分。它使得 web 服务器可以记录重复请求的 HTTP 客户端而不需要对每一次请求重新进行认证。记录会话的方式有多种。其中的一些方法不需要你服务器保持会话数据(如 JSON Web Tokens),而另外一些则需要。
Miigon
2022/10/27
3.2K0
在 PostgreSQL 中解码 Django Session
异步任务队列Celery在Django中的应用
关于Django的介绍,之前在2018年9月17号的文章中已经讲过了,大家有兴趣可以翻翻之前的文章,这里再简单介绍下:
AsiaYe
2019/11/06
3.1K0
异步任务队列Celery在Django中的应用
Django REST Framework-基于JSON Web Token的身份验证
在Django REST Framework中,基于JSON Web Token (JWT) 的身份验证是一种常见的身份验证方法。JWT是一种基于标准JSON格式的开放标准,它可以用于安全地将信息作为JSON对象传输。
玖叁叁
2023/04/25
2.1K0
python 中单独调用 django 的数据库模块
玉面小色熊
2017/07/28
3.8K0
python 中单独调用 django 的数据库模块
Django-bootstrap3|在Django中快速使用Bootstrap模版
关于如何快速基于Django使用别人写好的模版搭建网站之前已经有详细讲过,一般我们在Django中使用Bootstrap模版都需要经过以下几个步骤
刘早起
2020/06/28
5.9K0
Windows 身份验证中的凭据管理
Windows 凭据管理是操作系统从服务或用户接收凭据并保护该信息以供将来向身份验证目标呈现的过程。对于加入域的计算机,身份验证目标是域控制器。身份验证中使用的凭据是将用户身份与某种形式的真实性证明(例如证书、密码或 PIN)相关联的数字文档。
黑白天安全
2021/07/16
6.1K0
点击加载更多

相似问题

Django:没有提供身份验证凭据

21

Django -没有提供身份验证凭据

12

没有提供身份验证凭据- Django

11

没有提供Django身份验证凭据

22

上传的文件没有存储在django的数据库中。

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文