gpt4 book ai didi

django - 在 Django 中扩展 social_auth 用户模型

转载 作者:行者123 更新时间:2023-12-04 01:13:53 24 4
gpt4 key购买 nike

我是第一次使用 Django-social-auth,似乎所有新用户都注册在我的 Django 网站的 social_auth 应用程序的用户模型中。我有一个名为 Users 的不同模型,它具有一些特定数据(与站点中的用户事件以及与其他实体的关系相关),我想将从用户的 Facebook 个人资料(用户名、个人资料图片等)中获取的数据放入用户我自己制作的模型。有没有办法扩展social_auth 用户?

编辑
在阅读了 Django-social-auth 文档后,我编辑了我的 User 类如下:

# User 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

另外,如何获取用户的个人资料图片、好友列表等?
我不明白这是什么机制。

非常感谢 !

最佳答案

我根据需要创建了一个自定义 Manager 类,并将其命名为 CustomUserManager .

这是代码:

class CustomUserManager(models.Manager):
def create_user(self, username, email):
return self.model._default_manager.create(username=username)

然后我将我的 User 类更改为:
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

在我的 settings.py 中:
SOCIAL_AUTH_USER_MODEL = 'myappname.User'

感谢 ArgsKwargs 的帮助:)

关于django - 在 Django 中扩展 social_auth 用户模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10564023/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com