social-auth をインストールしてセットアップした後、コツを掴もうとして少し遊んでいます。ドキュメントを読み、サンプル プロジェクトを使用して実行しました。
しかし、今まで、特定のプロバイダーに関する情報を取得する方法がわかりません。サンプル プロジェクトでは、テンプレート タグは常に次のように使用されます。
{% for type, accounts in social_auth.associated.items %}
{% for account in accounts %}
{{account.provider}} is connected.
{% endfor %}
{% endfor %}
私が今やりたいことは、すべてのプロバイダーをリストすることではなく、誰かが自分のアカウントを (つまり) facebook に接続しているかどうかを確認することです。そうすれば、次のようなことができます:
if user==connected_to_facebook
provide some functionality
endif
上記の例から、social_auth.associated.items には のタプルが含まれていることがわかります(type,account)
。ここで、「facebook」は のすべての値を持つリストになりますaccount.provider
。
私の頭に浮かぶのはこれです:
{% if "facebook" in social_auth.associated.items.accounts.provider %}
これは明らかにうまくいきません。これはうまくいくと思いますが、私が求めている結果は返されません:
{% if "facebook" in social_auth.associated.items[1].provider %}
これを行うことができるDjangoの機能はありますか? たぶん、私が見逃している特別なテンプレートタグがありますか? それとも、この機能は既に social_auth に組み込まれていますか? それとも、私の最悪の疑念は、それが本当に明白なのか、そして私は...
どんな助けでも大歓迎です。