0

我是 FanDjango 的新手,并试图理解一些东西。我已经把所有东西都设置好并且工作得很漂亮,我可以查询 request.facebook.user 并获取信息。

但现在,我想开发一个应用程序,它提供的信息比 Facebook 提供的更多关于每个用户的信息。例如,我想存储该用户对其他对象(即关系)的模式的赞成/反对票。我想存储用户设置。等等......标准的“Django Way”是使用用户配置文件,但我不知道如何将 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”参数时,我实例化 Profile 模型。

@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 回答