Django电子邮件作为用户名

时间:2015-02-25 05:37:50

标签: python django django-models

有没有什么办法可以将电子邮件用作用户名而不指定自定义用户模型。我是django的新手,从过去的几个小时开始,我正在寻找并寻找方法。我尝试创建自定义模式,但然后一切都像管理员登录更改。

其次是有任何方法可以为特定应用定义自定义模型。例如。只面向前方。所以后端保持不变。

我只需要使用电子邮件作为用户登录的用户名。

是否可以使用

USERNAME_FIELD = 'email'

2 个答案:

答案 0 :(得分:1)

我实际上最终使用了django-authtools

答案 1 :(得分:0)

使用表格

获取电子邮件和密码
email = form.cleaned_data['email']
password = form.cleaned_data['password']

如果给定的电子邮件与现有记录匹配。

try:
    user = User.objects.get(email=email)
    if user.check_password(password):
        username = user.username
        user = authenticate(username=username, password=password)
        login(request, user)
        messages.success(request, "Welcome {}".format(email))
    else:
        messages.error(request, "Password not match for  {}".format(email))
except User.DoesNotExist:
    pass