2

它已在 Django-facebook 中明确编写,他们建议将其与 Userena 一起使用:

我们推荐使用 Django Userena。它似乎比 Django 注册更容易使用。两者都受支持并且是很好的软件包。要使用 django userena,只需指向 userena 兼容层。

AUTH_PROFILE_MODULE = 'django_facebook.FacebookProfile'

我的问题来自AUTH_PROFILE_MODULE = 'django_facebook.FacebookProfile'部分。我在Userena中开发了自己的UserProfile ,并根据自己的需要继承了一些系统 Actor,例如 Student 和 Tutors。所以我的设置是这样的:

AUTH_PROFILE_MODULE = 'profiles.UserProfile' 

在 django-facebook 中还有一个很棒的示例项目,用于混合 userena 和 django-facebook 设置。但是我的问题依然存在。。

我应该用facebook的代码替换我自己的代码吗?

这是我的代码:

from django.db import models
from django.contrib.auth.models import User
from django.utils.translation import ugettext as _
from django.db.models import permalink

from userena.models import UserenaBaseProfile

from courses.models import Course

class UserProfile(UserenaBaseProfile):
    user = models.OneToOneField(User, unique=True, verbose_name=_('user'), related_name='user_profile')
    department     = models.ForeignKey('Department' , null = True , blank = True , related_name=_('user'))
    name           = models.CharField(max_length = 100)
    birthday       = models.DateField()

    def __unicode__(self):
        return self.name

class Student(UserProfile):
    courses = models.ManyToManyField(Course , null = True, blank = True, related_name = _('student'))

提前谢谢..

4

1 回答 1

3

只需将 Facebook 所需的字段添加到您现有的个人资料中。

类 UserProfile(UserenaBaseProfile, FacebookProfileModel): ....

(https://docs.djangoproject.com/en/dev/topics/db/models/#model-inheritance)

于 2012-06-21T10:17:11.987 回答