为了账号安全,请及时绑定邮箱和手机立即绑定

求助:python源代码解读

求助:python源代码解读

无无法师 2017-09-23 10:35:44
####################Django的AbstractUser类的一段源码####################### class AbstractUser(AbstractBaseUser, PermissionsMixin):     """     An abstract base class implementing a fully featured User model with     admin-compliant permissions.     Username and password are required. Other fields are optional.     """     username_validator = UnicodeUsernameValidator() if six.PY3 else ASCIIUsernameValidator()     username = models.CharField(         _('username'),         max_length=150,         unique=True,         help_text=_('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.'),         validators=[username_validator],         error_messages={             'unique': _("A user with that username already exists."),         },     )     first_name = models.CharField(_('first name'), max_length=30, blank=True)     last_name = models.CharField(_('last name'), max_length=30, blank=True)     email = models.EmailField(_('email address'), blank=True)     is_staff = models.BooleanField(         _('staff status'),         default=False,         help_text=_('Designates whether the user can log into this admin site.'),     )     is_active = models.BooleanField(         _('active'),         default=True,         help_text=_(             'Designates whether this user should be treated as active. '             'Unselect this instead of deleting accounts.'         ),     )     date_joined = models.DateTimeField(_('date joined'), default=timezone.now)     objects = UserManager()     USERNAME_FIELD = 'username'     REQUIRED_FIELDS = ['email']     class Meta:         verbose_name = _('user')         verbose_name_plural = _('users')         abstract = True     def get_full_name(self):         """         Returns the first_name plus the last_name, with a space in between.         """         full_name = '%s %s' % (self.first_name, self.last_name)         return full_name.strip()     def get_short_name(self):         "Returns the short name for the user."         return self.first_name     def email_user(self, subject, message, from_email=None, **kwargs):         """         Sends an email to this User.         """         send_mail(subject, message, from_email, [self.email], **kwargs)第一:像first_name = models.CharField(_('first name'), max_length=30, blank=True) 和 verbose_name = _('user')里面添加的   _   是什么意思呀,一般我都写成first_name = models.CharField(max_length=30, blank=True) 和 verbose_name = user第二:USERNAME_FIELD = 'username' REQUIRED_FIELDS = ['email']上面的写的什么意思呢?
查看完整描述

1 回答

?
慕函数9285021

TA贡献27条经验 获得超6个赞

预定俗称, 单下划线,可以理解为 protect 变量,双下划线是 private 变量

查看完整回答
反对 回复 2017-09-26
  • 1 回答
  • 0 关注
  • 1801 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信