Closed ram0973 closed 12 years ago
Да, безусловно надо. Вот тут http://loginza.ru/json-user-profile можете подробнее узнать что возвращает Loginza после своей работы.
Если авторизация логинзы на фейсбуке или вконтакте возвращает аватары, то найти их можно в модели Identity в поле data, где все возвращенные данные хранятся сериализванные в JSON
сохраняет аву в django-avatar. А просто получить - то линк в data
def loginza_auth_handler(sender, user, identity, **kwargs):
try:
map = loginza_models.UserMap.objects.get(user=user)
data = json.loads(map.identity.data)
system_user = User.objects.get(username=user)
if data['provider'] == "http://www.facebook.com/":
if data['photo']:
try:
Avatar.objects.get(user=system_user)
except:
(filename, headers) = urllib.urlretrieve(data['photo'])
img_name = '%s.jpg' % os.path.basename(filename)
copy_path = os.path.join(settings.MEDIA_ROOT, settings.AVATAR_STORAGE_DIR, system_user.username, img_name)
copy_dir = os.path.join(settings.MEDIA_ROOT, settings.AVATAR_STORAGE_DIR, system_user.username)
if not os.path.isdir(copy_path):
os.makedirs(copy_dir)
shutil.copy2(filename, copy_path)
path_ava = os.path.join(settings.AVATAR_STORAGE_DIR, system_user.username, img_name)
avatar = Avatar(
user = system_user,
primary = True,
avatar = path_ava,
)
avatar.save()
auth.login(sender, user)
except loginza_models.UserMap.DoesNotExist:
sender.session['users_complete_reg_id'] = identity.id
return redirect(reverse('users.views.complete_registration'))
signals.authenticated.connect(loginza_auth_handler)
Спасибо огромное
Надо писать что-то дополнительно?