Django,Howto连接(和范围)facebook和django-userena或类似

时间:2012-06-20 15:59:27

标签: django django-models django-registration django-facebook

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

  

我们建议使用Django Userena。使用它似乎更容易   Django注册。两者都是支持和良好的包。至   使用django userena只需指向userena兼容性层。

AUTH_PROFILE_MODULE = 'django_facebook.FacebookProfile'

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

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'))

事先谢谢..

1 个答案:

答案 0 :(得分:3)

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

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

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