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'
用于在创建用户后创建配置文件。 在本地它工作得很好。但是在生产中,将创建用户,但没有用户名和配置文件,也许适配器不是用户? 设置与调试时相同。
最后我真的很慢,如果有任何小提示或帮助,我会很高兴