django 通过邮箱和用户名都能登录

一、

在settings.py 文件中的#Application definition 下增加代码:

AUTHENTICATION_BACKENDS=( 'users.views.CustomBackend' , )

注意上面的括号里,别忘了加逗号!

二、

在users/views.py中加代码:

from django.contrib.auth.backends import ModelBackend
from django.db.models import Q
from .models import UserProfile


class CustomBackend(ModelBackend):
    """邮箱也能登录"""
    def authenticate(self, request, username=None, password=None, **kwargs):
        try:
            user=UserProfile.objects.get(Q(username=username)|Q(email=username))
            if user.check_password(password):
                return user
        except Exception as e:
            return None

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏GreenLeaves

Web API系列之三 基本功能实现

Web API系列之二讲解了如何搭建一个WebApi的基架,本文主要在其基础之上实现基本的功能.下面开始逐步操作: 一、配置WebApi的路由-用于配置外部如何...

21450
来自专栏菩提树下的杨过

Asp.Net4.0/VS2010新变化(4):SEO的改进

asp.net4.0的webform中,对于Page对象新增加了二个属性:MetaKeywords,MetaDescription  ? 后端代码上,写法也更简...

18550
来自专栏有趣的django

Django rest framework(7)----分页

第一种分页  PageNumberPagination 基本使用 (1)urls.py urlpatterns = [ re_path('(?P<ve...

65470
来自专栏码农阿宇

ASP.NET Core轻松入门Bind读取配置文件到C#实例

首先新建一个ASP.NET Core空项目,命名为BindReader ? 然后 向项目中添加一个名为appsettings.json的json文件,为什么叫a...

60150
来自专栏技术小讲堂

ASP.NET Web API中的依赖注入什么是依赖注入ASP.NET Web API依赖解析器使用Unity解析依赖配置依赖解析

什么是依赖注入     依赖,就是一个对象需要的另一个对象,比如说,这是我们通常定义的一个用来处理数据访问的存储,让我们用一个例子来解释,首先,定义一个领域模型...

61780
来自专栏小灰灰

Java 动手写爬虫: 一、实现一个最简单爬虫

第一篇 准备写个爬虫, 可以怎么搞? 使用场景 先定义一个最简单的使用场景,给你一个url,把这个url中指定的内容爬下来,然后停止 一个待爬去的网址(有个地...

77060
来自专栏大内老A

ASP.NET Core的配置(1):读取配置信息

提到“配置”二字,我想绝大部分.NET开发人员脑海中会立马浮现出两个特殊文件的身影,那就是我们再熟悉不过的app.config和web.config,多年以来我...

22180
来自专栏柠檬先生

Angularjs基础(四)

AngularJS过滤器     过滤器可以使用一个管道符(|)添加到表达式和指令中。       AngularJS过滤器可用于转换数据:    ...

21290
来自专栏张高兴的博客

张高兴的 Windows 10 IoT 开发笔记:无线收发芯片 nRF24L01

13220
来自专栏林德熙的博客

WPF 如何在绑定失败异常

在开发 WPF 程序,虽然 xaml 很好用,但是经常会出现小伙伴把绑定写错了。因为默认的 VisualStudio 是没有自动提示,这时很容易复制粘贴写出一个...

29310

扫码关注云+社区

领取腾讯云代金券