0

私はdjango_facebookを使用しています。ユーザーがfbに登録するたびに、彼女のプロフィール写真が「画像」と呼ばれるフィールドにロードされます

私の 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 に答える