django-allauth多个对象

问题描述 投票:0回答:1
django-allauth,从例如GitHub在数据库中使用“ LocalHost:8000”或“ Productive_server.de”为site_id.ID.

没有其他提供商的列表。

我将问题删除为

env/Lib/site-packages/allauth/socialaccount/adapter.py -> DefaultSocialAccountAdapter(object) -> list_apps(self, request, provider=None, client_id=None) def list_apps(self, request, provider=None, client_id=None): """SocialApp's can be setup in the database, or, via `settings.SOCIALACCOUNT_PROVIDERS`. This methods returns a uniform list of all known apps matching the specified criteria, and blends both (db/settings) sources of data. """ # NOTE: Avoid loading models at top due to registry boot... from allauth.socialaccount.models import SocialApp # Map provider to the list of apps. provider_to_apps = {} # First, populate it with the DB backed apps. if request: db_apps = SocialApp.objects.on_site(request) # <-------- filter according "site_id" only if request is given else: db_apps = SocialApp.objects.all()

在错误跟踪中,事实证明,在“请求”参数未移交的方式上,因此没有过滤器“ site_id”,因此返回了2个提供商 - >例外:

Traceback (most recent call last): File "...\env\lib\site-packages\django\core\handlers\exception.py", line 47, in inner response = get_response(request) File "...\env\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "...\env\lib\site-packages\allauth\socialaccount\providers\oauth2\views.py", line 84, in view return self.dispatch(request, *args, **kwargs) File "...\env\lib\site-packages\allauth\socialaccount\providers\oauth2\views.py", line 162, in dispatch return complete_social_login(request, login) File "...\env\lib\site-packages\allauth\socialaccount\helpers.py", line 208, in complete_social_login sociallogin.lookup() # <------- from here "request" is lost File "...\env\lib\site-packages\allauth\socialaccount\models.py", line 282, in lookup provider_id = self.account.get_provider().id File "...\env\lib\site-packages\allauth\socialaccount\models.py", line 141, in get_provider provider = self._provider = adapter.get_provider( File "...\env\lib\site-packages\allauth\socialaccount\adapter.py", line 205, in get_provider app = self.get_app(request, provider=provider) File "...\env\lib\site-packages\allauth\socialaccount\adapter.py", line 299, in get_app raise MultipleObjectsReturned
我深入探讨了代码,这对我来说似乎是一个错误?
    

在我的情况下,问题之所以发生,是因为我在两个地方添加了
cocialapp

django django-allauth django-sites
1个回答
0
投票

在设置文件中使用

SOCIALACCOUNT_PROVIDERS
    ,该文件配置社交身份验证提供商。
  1. socialApp
    表下的数据库

    通常存储提供商的详细信息。
  2. 这重复引起冲突,导致了意外的行为。删除冗余条目解决了问题。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.