Python Django复合用户名

Python Django复合用户名,python,django,django-models,django-authentication,Python,Django,Django Models,Django Authentication,在Django中,是否可以同时使用两个或多个配置为唯一的字段作为用户名?这是个愚蠢的想法吗 Eg 您可以将“用户名”设置为属性。但是,由于我假设您希望它是USERNAME_字段,并且能够使用它查询数据库,因此我会执行以下操作: class MyUser(AbstractBaseUser, PermissionsMixin): user_id = models.CharField(max_length=255) backend = models.CharField(max_leng

在Django中,是否可以同时使用两个或多个配置为唯一的字段作为用户名?这是个愚蠢的想法吗

Eg

您可以将“用户名”设置为属性。但是,由于我假设您希望它是USERNAME_字段,并且能够使用它查询数据库,因此我会执行以下操作:

class MyUser(AbstractBaseUser, PermissionsMixin):
    user_id = models.CharField(max_length=255)
    backend = models.CharField(max_length=255)
    username = models.CharField(max_length=510, editable=False)

    class Meta:
        unique_together = (
            ('user_id', 'backend')
        )

    def save(self, *args, **kwargs):
        self.username = self.backend + self.user_id
        super(MyUser, self).save(*args, **kwargs)
class MyUser(AbstractBaseUser, PermissionsMixin):
    user_id = models.CharField(max_length=255)
    backend = models.CharField(max_length=255)
    username = models.CharField(max_length=510, editable=False)

    class Meta:
        unique_together = (
            ('user_id', 'backend')
        )

    def save(self, *args, **kwargs):
        self.username = self.backend + self.user_id
        super(MyUser, self).save(*args, **kwargs)