Djangoで下記のようにカスタムユーザーログイン機能を作りました
(参考:https://github.com/akiyoko/django-book-mysite-sample)
accounts/models.py
python
1途中略 2class CustomUser(AbstractUser): 3 """拡張ユーザーモデル""" 4 5 class Meta(AbstractUser.Meta): 6 db_table = 'custom_user' 7 8 # username をオーバーライドして NULL制約、ユニーク制約、入力必須制限を除去 9 username = models.CharField( 10 'ユーザー名', 11 max_length=150, 12 blank=True, 13 null=True, 14 help_text="半角アルファベット、半角数字、@/./+/-/_ で150文字以下にしてください。", 15 validators=[AbstractUser.username_validator], 16 ) 17 # email をオーバーライドして入力必須制限、ユニーク制約を付与 18 email = models.EmailField('メールアドレス', unique=True) 19 20 USERNAME_FIELD = 'email' 21 REQUIRED_FIELDS = [] 22 23 objects = CustomUserManager()
ログインしていればそのページを表示し、ログインしていなければログインページへ飛ばします
myapp/views.py
python
1途中略 2class NantokaView(LoginRequiredMixin, TemplateView): 3 login_url = '/accounts/login/' 4 template_name = 'nantoka.html'
ログイン中の場合、ユーザーをこんな感じで表示できています
templates/base.html
python
1{% if user.is_authenticated %} 2 {{ user.get_username }}さんログイン中 3{% endif %}
このテンプレートを表示する前のviews.pyの中で、ログイン中のユーザー情報を取得して利用したいのですが、そのようなことは可能でしょうか?LoginRequiredMixinの中にユーザーIDのプロパティがあったりするのでしょうか?継承するのがTemplateViewではダメだけどUpdateViewとかにすればいいのでしょうか?
開発環境はMac(Mojave)、Python3.7、Django2.1.7

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/03/18 04:33
2019/03/18 04:38 編集
退会済みユーザー
2019/03/18 04:53 編集