使用Facebook图片作为默认图片。 Django的

时间:2012-11-22 10:27:36

标签: django django-models django-facebook

我正在使用django-facebook,我希望个人资料图片是用户在Facebook注册时的图片。

在我的自定义用户模型(Userprofile)中,我有一个

         profilpic = models.ImageField(...)

我的models.py中也有这个功能:

   def create_facebook_profile(sender, instance, created, **kwargs):
      if not created:
          return
      UserProfile.objects.create(user=instance)

   post_save.connect(create_facebook_profile, sender=User)

我想知道是否可以将facebook个人资料图片用作我用户的“profilpic”。

我试着这样做:

     def create_facebook_profile(sender, instance, created, **kwargs):
      if not created:
          return
      UserProfile.objects.create(user=instance)

      user_data = json.loads(instance.raw_data)          
      user_pic = user_data.get('image')
      user = request.user
      user.userprofile.profilpic = user_pic
      user.save()

   post_save.connect(create_facebook_profile, sender=User)

但它不起作用。关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:0)

您正在尝试将网址保存到ImageField,您需要先在本地读取并保存图像,然后将该新文件分配给ImageField(假设是json)实际上有一个图像网址)。看看这个类似的问题:

Django: add image in an ImageField from image url