在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'))
事先谢谢..
答案 0 :(得分:3)
只需将Facebook所需的字段添加到现有的个人资料中即可。
类UserProfile(UserenaBaseProfile,FacebookProfileModel): ....
(https://docs.djangoproject.com/en/dev/topics/db/models/#model-inheritance)