【发布时间】:2021-04-04 19:37:49
【问题描述】:
我正在使用 Django rest 构建一个 API,我正在处理一种情况,我必须使用相同的用户名但在不同的组织中验证用户,我不知道该怎么做,有什么建议吗?我将不胜感激。
用户模型:
class User(AbstractUser):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
email = models.EmailField(_('email address'), unique=True)
phone_number = models.CharField(max_length=191, blank=True, null=True)
roles = models.ManyToManyField(to=Role,db_column="nom",blank=True)
objects = CustomUserManager()
multiple_connections = models.BooleanField(default=True)
organization = models.ForeignKey(
to=Organizations,on_delete=models.CASCADE,to_field="organization_key", blank=True, null=True)
def __str__(self):
return self.username
class Meta:
db_table = 'users'
verbose_name_plural = "Users"
unique_together = ('useranme', 'organization',)
【问题讨论】:
-
您在
unique_together = ('useranme', 'organization',)中有错字,电话号码的 191 个字符似乎有点偏大:p...无论如何...您是否考虑过使用电子邮件地址作为登录? -
是的,你是对的..,登录时,我必须使用用户名,这是项目规范
-
嗯...它是一个用户名...它恰好看起来像一个电子邮件地址?我想你必须做一些事情,比如接受
something/org_id或类似的用户名......从用户体验的角度来看,这可能只是令人困惑......因为你的电子邮件列是独一无二的 - 这似乎是最简单的有道理...
标签: django django-models django-rest-framework