Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用电子邮件作为django注册的用户名_Django_Django Registration_Django 1.5 - Fatal编程技术网

使用电子邮件作为django注册的用户名

使用电子邮件作为django注册的用户名,django,django-registration,django-1.5,Django,Django Registration,Django 1.5,我正在尝试使用电子邮件地址作为用户名(使用Django 1.5的自定义用户模型)以及Django注册 django注册版本1.0的文档说明:- 基本视图类故意与用户模型无关。只需对它们进行子类化,并为自定义用户模型实现逻辑 我已经对registration视图进行了子类化,但不幸的是,RegistrationProfile似乎仍然希望用户模型具有我没有的用户名字段。我只有电子邮件(还有名字、姓氏等) 这是虫子吗?在我看来,django注册仍然需要使用默认的基本用户模型——它只是能够使用添加到基本

我正在尝试使用电子邮件地址作为用户名(使用Django 1.5的自定义用户模型)以及Django注册

django注册版本1.0的文档说明:-

基本视图类故意与用户模型无关。只需对它们进行子类化,并为自定义用户模型实现逻辑

我已经对registration视图进行了子类化,但不幸的是,RegistrationProfile似乎仍然希望用户模型具有我没有的用户名字段。我只有电子邮件(还有名字、姓氏等)

这是虫子吗?在我看来,django注册仍然需要使用默认的基本用户模型——它只是能够使用添加到基本模型的自定义用户模型

有什么办法吗?也许我也可以对注册档案进行子分类?我该怎么做


谢谢。

我认为如果您继续使用默认的用户配置文件,从长远来看事情会变得更容易。如果您只是尝试添加使用电子邮件地址登录的功能,我建议您创建一个新的身份验证后端:

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


class EmailModelBackend(ModelBackend):
    def authenticate(self, username=None, password=None):
        try:
            user = User.objects.get(email__iexact=username)
            if user.check_password(password):
                return user
        except User.DoesNotExist:
            return None
然后,您需要将该后端添加到settings.py:

AUTHENTICATION_BACKENDS = (
    'yourproject.yourapp.yourmodule.EmailModelBackend',
    'django.contrib.auth.backends.ModelBackend'
)

这可能会帮助您:


他们已经在django注册中实现了这一点,这很复杂。您需要:

  • 因为在d-r-1.0中,models.py假设您的用户模型有一个“username”字段
  • 通过复制/粘贴/编辑注册/backends/default/views.py创建您自己的“后端”
  • 从registration/forms.py复制/粘贴/编辑注册表
  • 大多数情况下,您可以使用注册视图而无需修改

问题是关于定制用户和Django 1.5,所以我认为Django注册电子邮件是一个糟糕的答案。这是给Django的,这对使用Django注册有什么帮助?看起来不错。不幸的是,它似乎不适用于自定义用户模型<代码>管理器不可用;用户已被替换为“thursdayfootball.Player”