代码之家  ›  专栏  ›  技术社区  ›  Sasja Vandendriessche

django自定义用户管理器中的self.model()。

  •  3
  • Sasja Vandendriessche  · 技术社区  · 8 年前

    所以,我对姜戈还比较陌生。尽管我的代码在遵循Django文档的“在Django中自定义身份验证”之后工作,但我不知道示例中self.model(…)的实际工作方式、它来自何处以及它如何与“self”一起工作。

    这是在文档底部找到的示例。

    from django.db import models
    
    from django.contrib.auth.models import (
        BaseUserManager, AbstractBaseUser
    )
    
    class MyUserManager(BaseUserManager):
        def create_user(self, email, date_of_birth, password=None):
            """
            Creates and saves a User with the given email, date of
            birth and password.
            """
            if not email:
                raise ValueError('Users must have an email address')
    
       ->   user = self.model(
                email=self.normalize_email(email),
                date_of_birth=date_of_birth,
            )
    
            user.set_password(password)
            user.save(using=self._db)
            return user
    ...
    
    1 回复  |  直到 8 年前
        1
  •  2
  •   willeM_ Van Onsem    8 年前

    MyUserManager BaseUserManager class [GitHub] Manager class [GitHub] SomeModel.objects

    .model SomeModel

    int('42') int(..) self.model User

    User(date_of_birth=date(2018, 7, 3), email='bob@work.com') date_of_birth 'bob@work.com' email

    user.save()