带有自定义适配器的 Django-allauth 社交,用于在生产中创建配置文件

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

Iam 将 django-allauth 与 dj-rest-auth 与苹果供应商一起使用。这个奇怪的问题只发生在生产中。从 apple 获取用于验证用户的令牌后,我将其发送到 django 后端。我制作了一个自定义适配器,它附加自

DefaultSocialAccountAdapter
并覆盖 save_user 函数:

class SocialAccountAdapter(DefaultSocialAccountAdapter):
    def save_user(self, request, sociallogin, form=None):
        user = super().save_user(request, sociallogin, form)

        profile = Profile.objects.get_or_create(user=user)

        url = sociallogin.account.get_avatar_url()
        avatar = download_file_from_url(url) if url else None
        if avatar is not None:
            avatar_obj = UserImageAvatar(
                file=avatar,
                creator=user
            )

            with atomic():
                avatar_obj.save()
                image = UserImageAvatar.objects.get(id=avatar_obj.id)
                user.profile.avatar = image
                user.profile.save(update_fields=['avatar'])

        return user

设置.py

SOCIALACCOUNT_ADAPTER = 'core.adapters.SocialAccountAdapter'

用于在创建用户后创建配置文件。 在本地它工作得很好。但是在生产中,将创建用户,但没有用户名和配置文件,也许适配器不是用户? 设置与调试时相同。

最后我真的很慢,如果有任何小提示或帮助,我会很高兴

python django production-environment django-allauth dj-rest-auth
© www.soinside.com 2019 - 2024. All rights reserved.