Я использую:
- Джанго-социальная аутентификация v 0.7.19
- Джанго 1.4.3
models.py:
class UserProfile(models.Model):
user = models.ForeignKey(User)
username = models.CharField(max_length = 64, blank = True, null = True)
last_login = models.DateField(blank = True, null = True)
is_active = models.BooleanField(blank = True)
social_auth pipe.py:
from social_auth.backends.pipeline.user import create_user
def create_user(backend, details, response, uid, username, user=None, *args,
**kwargs):
if user:
return {'user': user}
if not username:
return None
user, created = User.objects.get_or_create(username = username)
profile, created = UserProfile.objects.get_or_create(user = user)
return {
'user': user,
'profile' : profile,
'is_new': True
}
Проблема:
Когда я удаляю из своей модели поля username, last_login и is_active, социальная аутентификация выдает ошибку DataBaseError, так как эти столбцы необходимы. Я беру пользователя ForeignKey, но он не может его обнаружить.
Я переопределяю метод социальной аутентификации create_user, чтобы создать своего пользователя и его профиль. Когда функция возвращается, пользователь и профиль создаются, но все же перенаправляются на страницу ошибки. Не могу понять почему.