割とよく使うのでメモ。
例えばログイン中のユーザーがメールアドレス(またはユーザー名)でアカウント登録しているのか、それともソーシャルアカウント(Twitterアカウント、Facebookアカウント等)で登録しているのかでテンプレートの処理を分けたいときに使えます。
テンプレート
[code lang=”html”]
{% get_social_accounts user as accounts %}
{% if accounts %}
{# 少なくとも1つのソーシャルアカウントがある場合 #}
{% else %}
{# ソーシャルアカウントがない(メールアドレスやユーザー名でログイン) #}
{% endif %}
[/code]
気になったこと
何らかの理由でソーシャルアカウントと連携しているけど、メールアドレスでログインしている場合はどうなるのかは未確認。
あんまりなさそうですが、一つのアカウントをソーシャルアカウント、メールアドレス(もしくはユーザー名)どちらでもログイン可能にしている場合は工夫が必要かもです。
参考
詳しくはallauth公式のGitに書いてます(日本語にすると大体分かる)
django-allauth/templates.rst at master · pennersr/django-allauth · GitHub