Я попытался это до сих пор:Джанго allauth - Проверка, если поставщик является активным один в моем проекте
Либо сделать SocialApp.objects.get (поставщик = «поставщик разрешенных в приложении») И это скажет мне, действительно ли провайдер существует. Но оговорка здесь в том, что если у меня установлены разные провайдеры в моих настройках, тогда этот запрос не сможет определить, разрешен ли провайдер активным в моем проекте Django.
In [104]: for app in s.INSTALLED_APPS: .....: if 'google' in app: .....: print(app) .....:
allauth.socialaccount.providers.google
Но я хочу сделать это надлежащим образом. Может быть, есть способ сделать это? Я нашел этот модуль в allauth: allauth.socialaccount.providers
Используя это, я могу это сделать:
providers.registry.get_list()
Что дает мне что-то вроде этого:
dict_values([<allauth.socialaccount.providers.google.provider.GoogleProvider object at 0x7f5803998470>, <allauth.socialaccount.providers.facebook.provider.FacebookProvider object at 0x7f5803998198>])
И это почти что я хочу. Но мне нужен список, как ['google', 'facebook']
, так что я могу по крайней мере сделать простой:
registered_proviers = ['google', 'facebook'] if provider in registered_providers:
Но было бы Greate, если я могу использовать некоторые allauth функцию, которая была бы как:
if is_registered_provider(provider):
Спасибо.
Возвращения dict_keys ([]) –
Try загрузка первых: providers.registry.load() – cdvv7788
Это работало. Благодарю. Этого достаточно. –