0

我正在使用 django_facebook。每次用户在 fb 注册时,她的个人资料都会加载到一个名为“image”的字段中

在我的 models.py 中,我有一个名为 profilpic 的字段,允许用户拥有个人资料图片:

        class UserProfile(FacebookProfileModel):
            user = models.OneToOneField(User)
            profilpic = models.ImageField(upload_to="profilepics/", default="profilepics/shadow_user.jpg")


        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' 采用'image' 的值(即 profilpic 成为 facebook 图片)。

这是我尝试过的:

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

        post_save.connect(create_facebook_profile, sender=User)

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

非常感谢。

4

1 回答 1

0

您在错误的实例上调用 save 方法。如果你说 instance.save() 它只会调用它的保存方法而不是用户配置文件保存方法。

def create_facebook_profile(sender, instance, created, **kwargs):
             if not created:
                return
             UserProfile.objects.create(user=instance)
             instance.userprofile.profilpic = instance.userprofile.image
             instance.userprofile.save()
于 2012-12-01T16:16:08.323 回答