【发布时间】:2021-10-17 22:58:23
【问题描述】:
我正在编写一个 web 应用程序,我希望有一个通用的 Person 表来唯一标识与网站交互的任何人,例如能够遵守 GDPR 要求。
某些Persons 在身份验证意义上也应该是Users。
我想使用Person.email 作为用户名。
但是,我无法使身份验证/管理界面正常工作。
简化模型:
from django.db import models
from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin
class Person(models.Model):
name = models.CharField(max_length=255, blank=False)
email = models.EmailField(blank=False, unique=True)
class User(AbstractBaseUser, PermissionsMixin):
person = models.OneToOneField(Person, on_delete=models.PROTECT)
USERNAME_FIELD = ...# what to put here?
我发现了一个似乎相关的非常古老的 Django 问题: https://code.djangoproject.com/ticket/21832
任何想法,如何使用外键来保存基本用户信息?
【问题讨论】:
标签: python django django-models django-authentication