0

我正在使用 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 个人资料图片用作我用户的“个人资料”。

我试图这样做:

     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)

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

4

1 回答 1

0

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

Django:从图像 url 在 ImageField 中添加图像

于 2012-11-22T12:48:58.543 回答