12

テンプレートにcurrent_userの画像を表示したい。django-allauthを使用しているときにユーザーのFacebookIDにアクセスするにはどうすればよいですか?

4

1 に答える 1

28

ソーシャルアカウントを介してサインアップしたユーザーごとに、SocialAccountインスタンスを利用できます。このモデルには、への外部キーがありUserます。ユーザーは複数のソーシャルネットワーキングアカウントを自分のローカルアカウントに接続できるため、実際には複数のSocialAccountインスタンスが利用できる場合があることに注意してください。

これにどのように対処したいかは、プロジェクトによって異なります。プロフィール画像をローカルにコピーしたい場合や、Facebookのプロフィール画像よりもGoogle+のプロフィール画像を優先したい場合などが考えられます。

SocialAccountモデルには、プロフィール写真などのアカウントの基本にアクセスできるいくつかのヘルパーメソッドがあります。全体として、これは最初に利用可能なプロフィール写真にアクセスするための迅速で汚い方法です。

{{user.socialaccount_set.all.0.get_avatar_url}}

IDも利用できます:

{{user.socialaccount_set.all.0.uid}}

参照:https ://github.com/pennersr/django-allauth/blob/master/allauth/socialaccount/models.py#L72

于 2012-09-01T09:38:13.570 に答える