Moh*_*rki 5 django django-socialauth
我第一次使用Django-social-auth,似乎所有新用户都已在我的Django网站的social_auth应用程序的用户模型中注册。我有一个名为“用户”的模型,它具有一些特定的数据(与网站中的用户活动以及与其他实体的关系有关),我想将从用户的Facebook个人资料(用户名,个人资料图片等)中获取的数据放入“用户”中我自己做的模特 有什么办法可以扩展social_auth用户?
编辑 在阅读Django-social-auth文档后,我如下编辑了User类:
# User model
Run Code Online (Sandbox Code Playgroud)
类User(models.Model):
username = models.CharField(max_length=30)
last_login = models.DateTimeField(blank=True)
is_active = models.BooleanField(default=False)
playedHours = models.FloatField(default = 0)
userSlug = models.SlugField(unique = True)
playedSongs = models.ManyToManyField(Song, blank=True, null = True)
invitedFriends = models.ManyToManyField('self', blank = True, null = True)
def __unicode__(self):
return self.name
Run Code Online (Sandbox Code Playgroud)
另外,如何获取用户的个人资料图片,朋友列表等?我不明白这种机制。
非常感谢 !
小智 4
我根据需要创建了一个自定义 Manager 类,并将其命名为CustomUserManager.
这是代码:
class CustomUserManager(models.Manager):
def create_user(self, username, email):
return self.model._default_manager.create(username=username)
Run Code Online (Sandbox Code Playgroud)
然后我将我的用户类更改为:
class User(models.Model):
username = models.CharField(max_length=30)
last_login = models.DateTimeField(blank=True, null=True)
is_active = models.BooleanField(default=False)
playedHours = models.FloatField(default = 0)
objects = CustomUserManager()
playedSongs = models.ManyToManyField(Song, blank=True, null = True)
invitedFriends = models.ManyToManyField('self', blank = True, null = True)
def __unicode__(self):
return self.username
def is_authenticated(self):
return True
Run Code Online (Sandbox Code Playgroud)
在我的 settings.py 中:
SOCIAL_AUTH_USER_MODEL = 'myappname.User'
Run Code Online (Sandbox Code Playgroud)
感谢 ArgsKwargs 的帮助:)
| 归档时间: |
|
| 查看次数: |
2053 次 |
| 最近记录: |