无法在Django中创建自定义用户模型

龙尼可

我有一个自定义的无密码用户模型,内置于Django 1.11中。用户模型如下所示

class User(models.Model):
    email = models.EmailField(primary_key=True)
    REQUIRED_FIELDS = []
    USERNAME_FIELD = 'email'
    is_anonymous = False
    is_authenticated = True

这是一个自定义用户模型,并依赖于自定义auth后端,如下所示

class PasswordlessAuthenticationBackend():
    def authenticate(self, uid):
        try:
            token = Token.objects.get(uid=uid)
            return User.objects.get(email=token.email)
        except User.DoesNotExist:
            return User.objects.create(email=token.email)
        except Token.DoesNotExist:
            return None

    def get_user(self, email):
        try:
            return User.objects.get(email=email)
        except User.DoesNotExist:
            return None

身份验证已注册并且可以正常工作。令牌就是这个

class Token(models.Model):
    email = models.EmailField()
    uid = models.CharField(default=uuid.uuid4, max_length=40)

问题是,当我尝试调用auth.loginmy时TestCase,它总是抛出此错误:

ValueError: The following fields do not exist in this model or are m2m fields: last_login

什么是m2m字段?如何以及在哪里指定last_login

编辑:

测试失败看起来像这样:

from django.test import TestCase
from django.contrib.auth import get_user_model
from django.contrib import auth
from accounts.models import Token

User = get_user_model()
email = '[email protected]'

class UserModelTestcase(TestCase):
    def test_user_is_valid_with_email_only(self):
        user = User(email=email)
        user.full_clean()
    
    def test_email_is_primary_key(self):
        user = User(email=email)
        self.assertEqual(user.pk,email)

    def test_links_user_with_auto_generated_uid(self):
        token1 = Token.objects.create(email=email)
        token2 = Token.objects.create(email=email)
        self.assertNotEqual(token1.uid, token2.uid)
    
    def test_no_problem_with_auth_login(self):
        user = User.objects.create(email=email)
        user.backend = ''
        request = self.client.request().wsgi_request
        auth.login(request, user) #should not raise, fails!
Okkie

此链接关于Django自定义身份验证和登录的错误?

对您的问题有深入的解释,可以选择多种解决方案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法在Django 1.8中创建超级用户使用自定义用户模型

来自分类Dev

在Django中创建自定义用户模型的指南

来自分类Dev

无法在Django中验证自定义用户模型

来自分类Dev

使用自定义用户模型创建超级用户后,无法登录django admin

来自分类Dev

Django:使用自定义用户模型创建超级用户

来自分类Dev

django 1.9不为自定义用户模型创建表

来自分类Dev

Django rest 自定义用户模型创建失败

来自分类Dev

Django Rest Framework:在模型中创建自定义方法后,字段无法创建或更新

来自分类Dev

从自定义Django用户模型中删除密码

来自分类Dev

1.8中的Django自定义用户模型

来自分类Dev

从Django自定义管理页面创建的用户无法登录

来自分类Dev

Django(1.6)自定义用户模型

来自分类Dev

Django自定义用户模型

来自分类Dev

自定义 Django 用户模型

来自分类Dev

Django创建自定义模型字段

来自分类Dev

在 Django 中创建自定义用户类

来自分类Dev

无法在Django 3中验证自定义用户

来自分类Dev

自定义用户模型中的EmbeddedModelField

来自分类Dev

在django 1.8中将数据从原始用户模型迁移到自定义用户模型

来自分类Dev

Django自定义用户模型与配置文件模型

来自分类Dev

如何通过创建自定义模型来覆盖Django中用户名的最大长度

来自分类Dev

在Django中使用自定义用户模型总是在模板中返回匿名用户

来自分类Dev

使用Django的自定义用户模型(Django1.6)

来自分类Dev

Django自定义Auth用户模型并重置迁移

来自分类Dev

django自定义用户模型密码未哈希

来自分类Dev

Django:自定义用户模型的返回字段

来自分类Dev

Django Rest框架未验证自定义用户模型

来自分类Dev

在Django中使用自定义用户模型时的RelatedObjectDoesNotExist

来自分类Dev

Django 1.7旧样式自定义用户模型

Related 相关文章

  1. 1

    无法在Django 1.8中创建超级用户使用自定义用户模型

  2. 2

    在Django中创建自定义用户模型的指南

  3. 3

    无法在Django中验证自定义用户模型

  4. 4

    使用自定义用户模型创建超级用户后,无法登录django admin

  5. 5

    Django:使用自定义用户模型创建超级用户

  6. 6

    django 1.9不为自定义用户模型创建表

  7. 7

    Django rest 自定义用户模型创建失败

  8. 8

    Django Rest Framework:在模型中创建自定义方法后,字段无法创建或更新

  9. 9

    从自定义Django用户模型中删除密码

  10. 10

    1.8中的Django自定义用户模型

  11. 11

    从Django自定义管理页面创建的用户无法登录

  12. 12

    Django(1.6)自定义用户模型

  13. 13

    Django自定义用户模型

  14. 14

    自定义 Django 用户模型

  15. 15

    Django创建自定义模型字段

  16. 16

    在 Django 中创建自定义用户类

  17. 17

    无法在Django 3中验证自定义用户

  18. 18

    自定义用户模型中的EmbeddedModelField

  19. 19

    在django 1.8中将数据从原始用户模型迁移到自定义用户模型

  20. 20

    Django自定义用户模型与配置文件模型

  21. 21

    如何通过创建自定义模型来覆盖Django中用户名的最大长度

  22. 22

    在Django中使用自定义用户模型总是在模板中返回匿名用户

  23. 23

    使用Django的自定义用户模型(Django1.6)

  24. 24

    Django自定义Auth用户模型并重置迁移

  25. 25

    django自定义用户模型密码未哈希

  26. 26

    Django:自定义用户模型的返回字段

  27. 27

    Django Rest框架未验证自定义用户模型

  28. 28

    在Django中使用自定义用户模型时的RelatedObjectDoesNotExist

  29. 29

    Django 1.7旧样式自定义用户模型

热门标签

归档