在 Django 中添加社交应用程序时发生完整性错误:“provider_id”列中的空值

问题描述 投票:0回答:1

在 Django 中添加社交应用程序时出现完整性错误:“列“provider_id”中的空值违反了非空约束”

当尝试使用 Django Allauth 添加社交应用程序时,在我的 Django 应用程序中出现

I am encountering an IntegrityError。该错误特别指向

provider_id
列中的空值,我正在寻求帮助来解决此问题。

当我通过 Django 管理面板try to add a new social application时发生错误。这是详细的错误消息:($符号是为了隐私而屏蔽的

IntegrityError at /admin/socialaccount/socialapp/add/
null value in column "provider_id" violates not-null constraint
DETAIL:  Failing row contains (8, google, google, 888982092733-51qdar9ln6i5onjoli2blj9bb6$$$$$$$.apps.googleusercon..., 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, , null, null).

Google 的提供商,这是唯一的下拉选项

所有迁移都已在代码中进行

通过 django 的 Google OAuth 详细信息

授权重定向 URI 正在链接到端口 url。

发布状态为生产中。

正在查阅资源。

Akamai DevRel。 “设置 Google 登录以获得更快的 Django 登录体验。与蒂姆一起技术。” YouTube,YouTube 视频,2022 年 12 月 12 日,https://youtu.be/yO6PP0vEOMc?feature=shared&t=1386。访问日期:2023 年 11 月 11 日。

  • 已按照本教程实施 google oauth 的所有步骤进行操作,添加社交帐户时在 23:06 左右出现问题。

“姜戈”。 Django 项目,2023 年,https://docs.djangoproject.com/en/4.2/topics/auth/。访问日期:2023 年 11 月 11 日。

  • django oauth 似乎已根据本文档正确安装在 settings.py 中
django oauth-2.0 django-admin google-oauth
1个回答
0
投票

嗯,提供商是社交提供商?或者你将表名设置为“provider”?

如果您使用“谷歌社交登录”的提供商

您可以通过在社交应用程序对象上设置提供者字段来完成此操作。

from allauth.socialaccount.models import SocialAccount, SocialApp

social_app = SocialApp.objects.create(
    provider='google',
    name='Google',
    client_id=YOUR_GOOGLE_CLIENT_ID,
    secret_key=YOUR_GOOGLE_SECRET_KEY,
)

您可以通过在项目的 settings.py 文件中设置 SOCIALACCOUNT_PROVIDERS 设置将其添加到您的 Django 项目中。例如:

# settings.py
SOCIALACCOUNT_PROVIDERS = {
    'google': {
        'PROVIDER': 'allauth.socialaccount.providers.google.GoogleProvider',
        'APP': {
            'client_id': YOUR_GOOGLE_CLIENT_ID,
            'secret_key': YOUR_GOOGLE_SECRET_KEY,
        }
    }
}

像这样你必须

但是如果你的意思是表名称是“provider”,你必须分享你的代码

© www.soinside.com 2019 - 2024. All rights reserved.