0

私はFanDjangoを初めて使用し、何かを理解しようとしています。すべてがセットアップされ、美しく機能しています。request.facebook.userをポールして、情報を取得できます。

しかし今、私はFacebookが各ユーザーについて私に与えるよりも多くの情報を持っているアプリケーションを開発したいと思っています。たとえば、このユーザーが他のオブジェクト(つまりリレーション)に対してモードを持っている上下の投票を保存したいと思います。ユーザー設定を保存したい。など...標準の「DjangoWay」はユーザープロファイルを使用することですが、FanDjangoのユーザーをユーザープロファイルに接続する方法がわかりません。

これを行う方法がわかりません。

fandjangoの前にdjango-facebookを調べましたが、動作させることができなかったため、これに移動しました。彼らがしていることは、あなたのユーザープロファイルが彼らのユーザー定義から継承することを可能にするということです。ここでも同じようなことができますか、それとも別のことをする必要がありますか?

ありがとう

4

1 に答える 1

2

Profileモデルを作成しOneToOneFieldて、Fandjangoプロファイルを指すようにするだけです。

class Profile(models.Model):
     facebook_user = models.OneToOneField("fandjango.User")
     votes = ...

これにより、プロファイルを指定してFandjangoプロファイルを取得でき、その逆も可能です。

request.facebook.user.profile

逆に:

profile.facebook_user 

これに伴う問題は、まったく使用していないため、使用できるなどdjango.contrib.authの優れた機能がまったく得られないことです。{% if user.is_authenticated %}

追加するために編集:

ここで提供される追加の詳細:https ://github.com/jgorset/fandjango/issues/63#issuecomment-4988917

次に、「Fandjango.models.User」のpost_saveシグナルをリッスンし、「created」パラメーターが設定されている場合は、プロファイルモデルをインスタンス化します。

@receiver(post_save, sender=User)
def profile_creation(sender, instance, created, **kwargs):
    if created:
        profile, created = Profile.objects.get_or_create(user=instance)
于 2012-04-05T12:06:18.823 に答える