Django使用电话号码注册

Django使用电话号码注册,django,django-models,vue.js,django-rest-framework,django-views,Django,Django Models,Vue.js,Django Rest Framework,Django Views,我有一个Django项目,后端有一个Django REST,客户端有vue js。我想使用我的电话号码进行注册和登录。如果我很抱歉有人在之前做了,我怎么做?我会很高兴听到你的建议,也会为我的英语感到抱歉 使用Django电话登录时出错: 文件/home/c2dent/django/afmoon/backend/afmoon/url.py,第24行,在 urlr“^phone\u login/”,包括“phone\u login.url”,名称空间='phone\u login',和,, 文件/h

我有一个Django项目,后端有一个Django REST,客户端有vue js。我想使用我的电话号码进行注册和登录。如果我很抱歉有人在之前做了,我怎么做?我会很高兴听到你的建议,也会为我的英语感到抱歉

使用Django电话登录时出错:

文件/home/c2dent/django/afmoon/backend/afmoon/url.py,第24行,在 urlr“^phone\u login/”,包括“phone\u login.url”,名称空间='phone\u login',和,, 文件/home/c2dent/django-trunk/django/url/conf.py,第39行,include中 '在include中指定命名空间,但不提供应用程序名称' django.core.exceptions.ImpropertlyConfigured:不支持在include中指定命名空间而不提供应用程序名称。在包含的模块中设置app_name属性,或者传递一个包含模式列表和app_name的2元组。 c2dent@c2dent:~/django/afmoon/backend$python3 manage.py makemigrations SystemCheckError:系统检查发现了一些问题: 错误: :admin.E108“list_display[0]”的值指的是“phone_number”,它不是可调用的、“PhoneTokenAdmin”的属性或“phone_login.PhoneToken”的属性或方法


我建议使用,如果您需要安装帮助,请告诉我。

您可能需要为此编写自己的身份验证后端

首先,在项目设置中声明自定义后端路径

AUTHENTICATION_BACKENDS = ('core.backends.EmailOrPhoneModelBackend',)
然后在单独的doc backends.py中,您可以编写自己的逻辑。下面是我自己的解决方案

from django.contrib.auth.backends import ModelBackend
from .models import MyUser


class EmailOrPhoneModelBackend(ModelBackend):

#This is a ModelBacked that allows authentication with either a username or an email address.

def authenticate(self, username=None, password=None):
    if '@' in username:
        kwargs = {'email': username}
    else:
        kwargs = {'phone': username}
    try:
        user = MyUser.objects.get(**kwargs)
        if user.check_password(password):
            return user
    except MyUser.DoesNotExist:
        return None

def get_user(self, username):
    try:
        return MyUser.objects.get(pk=username)
    except MyUser.DoesNotExist:
        return None

以上是使用电子邮件或电话号码注册的解决方案。

我尝试了此方法,但无法实现,因为在设置和设置settings.py后,我显示了许多错误。我不知道如何修复它。也没有文章显示如何编写models.py以及如何使用Djnago Phone登录实现它?下面是错误::admin.E108“list_display[0]”的值指的是“Phone_number”,它不是可调用的,是“PhoneTokenAdmin”的一个属性,或者“phone_login.PhoneToken”@user9922491上的属性或方法。您可以通过执行以下操作来解决此问题:pip install-U django phonenumber field谢谢您的回答。A对于通过短信确认通过电话号码注册,我可以怎么做?首先设置为非活动,在短信确认后,您将设置为活动,否则用户将重试激活帐户。短信确认将更改用户的状态,不影响注册过程。您可以自动生成一个4位数的代码,并使用后端将其发送到客户端,并在客户端向您发送代码时进行验证。还有“twilio”和“nexmo”等服务,它们提供短信服务进行身份验证。非常感谢您的回答!作为一个初学者,我会尝试这样做,所以我需要时间来理解这一点。