具有额外字段的Django用户 - 扩展用户

时间:2015-12-27 17:48:05

标签: django django-models django-allauth

嘿,我是allauth包的新手。 我想知道如何编写扩展all auth用户的用户模型。 例如,我希望有一个用户在其中包含allauth用户字段,还有一个图像,收藏文本字段列表。

我真的很感激任何帮助!

2 个答案:

答案 0 :(得分:0)

您可以使用OneToOneField(User)扩展Django用户模型。 这是Django文档的相关部分:Extending the existing User model

如果您需要它,您可以使用自定义用户模型,但这将更加困难。在这种情况下,请参阅allauth custom user modelsDjango documentation

答案 1 :(得分:0)

由于您希望allauth用户字段包含一些额外字段,因此您可以继承默认用户模型并将自定义字段添加到其中。

from django.contrib.auth.models import AbstractUser

class ExtendedUser(AbstractUser):
  favourites = models.charField(max_length=255)
  ....
  ....

在您的settings.py文件中,添加此行

AUTH_USER_MODEL = 'users.ExtendedUser'

要在用户注册时存储额外字段,请使用视图中的django-allauth信号,如下所示。

from django.dispatch import receiver
from allauth.account.signals import user_signed_up

@receiver(user_signed_up)
def user_signed_up(request, user, **kwargs)
  #get extra fields from kwargs and save to database