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

Django user with extra fields- extending User

嘿,我是 allauth 包的新手。 我想知道如何编写一个扩展所有授权用户的用户模型。 例如,我希望有一个用户在其中包含 allauth 用户字段以及图像,最喜欢的文本字段列表。

如果有任何帮助,我将不胜感激!!

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

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

由于您希望 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