Django는 메일과 핸드폰 번호로 로그인을 합니다.
1607 단어 Django
AbstractUser 클래스만 상속하면 됩니다.
from django.db import models
from django.contrib.auth.models import AbstractUser
class UserProfile(AbstractUser):
nick_name = models.CharField(max_length=50, verbose_name=" ", default="")
birthday = models.DateField(verbose_name=" ", blank=True, null=True)
mobile = models.CharField(max_length=11, verbose_name=" ", default="")
address = models.CharField(max_length=50, verbose_name=" ", default="")
image = models.ImageField(verbose_name=" ", upload_to="users/%Y/%m", default="")
class Meta:
verbose_name = " "
verbose_name_plural = verbose_name
def __str__(self):
return self.username
2、 ModelBackend
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) | Q(mobile=username))
if user.check_password(password):
return user
except Exception as e:
return None
3、settings를 수정합니다.py, 추가
AUTHENTICATION_BACKENDS, CustomBackend
AUTHENTICATION_BACKENDS = [
'users.views.CustomBackend',
]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django 라우팅 계층 URLconf 작용 및 원리 해석URL 구성(URLconf)은 Django가 지원하는 웹 사이트의 디렉토리와 같습니다.그것의 본질은 URL과 이 URL을 호출할 보기 함수 사이의 맵표입니다. 위의 예제에서는 URL의 값을 캡처하고 위치 매개 변수로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.