59356


djangoでHTML上でログインユーザ名の取得を行いたいのですが、  
カスタムユーザで認証をユーザ名からメールアドレスに変更した影響で  
HTML上で`'user.username'`ないし`'user.get_username'`で取得される値はメールアドレスになってしまいます。

[code]

    class UserManager(BaseUserManager):
    
    use_in_migrations = True
    
    def _create_user(self, email, password, **extra_fields):
        if not email:
            raise ValueError('The given email must be set')
        email = self.normalize_email(email)
        user = self.model(email=email, **extra_fields)
        user.set_password(password)
        user.save(using=self._db)
        return user
    
    def create_user(self, email, password=None, **extra_fields):
        extra_fields.setdefault('is_staff', False)
        extra_fields.setdefault('is_superuser', False)
        return self._create_user(email, password, **extra_fields)
    
    def create_superuser(self, email, password, **extra_fields):
        extra_fields.setdefault('is_staff', True)
        extra_fields.setdefault('is_superuser', True)
    
        if extra_fields.get('is_staff') is not True:
            raise ValueError('Superuser must have is_staff=True.')
        if extra_fields.get('is_superuser') is not True:
            raise ValueError('Superuser must have is_superuser=True.')
    
        return self._create_user(email, password, **extra_fields)
    
[/code]

コードはこのままの場合、ユーザ名を取得する方法はあるのでしょうか？

@追記  
userモデルの定義（一部抜粋）

[code]

    class CustomUser(AbstractBaseUser, PermissionsMixin):
    """カスタムユーザーモデル."""
    
    nick_name = models.CharField(_('ニックネーム'), max_length=20)
    
    def get_full_name(self):
        full_name = '%s' % (self.nick_name)
        return full_name.strip()
    
    def get_short_name(self):
        """Return the short name for the user."""
        return self.nick_name
    
[/code]


CC BY-SA 4.0
2019-09-30T06:47:08.380
59353
2019-09-30T11:45:33.037
2019-09-30T11:45:33.037
36021
36021
question
python django
ログインユーザの名前を取得


ユーザ名はどのフィールドに保存していますか？そのままアクセスすれば、値が表示されます。  
たとえば、テンプレートに以下のコードでfirst_nameとlast_nameの値が表示されます。

[code]

    request.user.first_name
    request.user.last_name
    
[/code]


CC BY-SA 4.0
2019-09-30T08:43:53.210
59356
2019-09-30T08:51:31.643
2019-09-30T08:51:31.643
32986
35698
59353
answer