Джанго. Python социальная авторизация. создавать профили в конце конвейера
Я хочу добавить функцию в конце конвейера авторизации, она предназначена для проверки, существует ли таблица «Профили» для этого пользователя, если она не будет создана, создаст таблицу. Модель Profiles - это таблица, где я храню дополнительную информацию о пользователе:
class Profiles(models.Model):
user = models.OneToOneField(User, unique=True, null=True)
description = models.CharField(max_length=250, blank=True, null=True)
points = models.SmallIntegerField(default=0)
posts_number = models.SmallIntegerField(default=0)
У каждого пользователя должна быть таблица профилей. Итак, я добавил функцию в конце конвейера:
SOCIAL_AUTH_PIPELINE = (
'social.pipeline.social_auth.social_details',
'social.pipeline.social_auth.social_uid',
'social.pipeline.social_auth.auth_allowed',
'social.pipeline.social_auth.social_user',
'social.pipeline.user.get_username',
'social.pipeline.user.create_user',
'social.pipeline.social_auth.associate_user',
'social.pipeline.social_auth.load_extra_data',
'social.pipeline.user.user_details',
'app.utils.create_profile' #Custom pipeline
)
#utils.py
def create_profile(strategy, details, response, user, *args, **kwargs):
username = kwargs['details']['username']
user_object = User.objects.get(username=username)
if Profiles.ojects.filter(user=user_object).exists():
pass
else:
new_profile = Profiles(user=user_object)
new_profile.save()
return kwargs
Я получаю ошибку:
KeyError at /complete/facebook/
'details'
...
utils.py in create_profile
username = kwargs['details']['username']
Я новичок в социальной аутентификации Python, и, похоже, мне не хватает чего-то очевидного. Любая помощь будет оценена.