使用 firebase User UID 作为 id 创建 django 用户

Create django user with firebase User UID as id

我使用 django 作为 firebase 项目的自定义后端。 我想从 firebase 凭据在我的 django 数据库中创建用户,并将 firebase UUID 作为我在 django db 中的用户的主键。所以我在 django 中为我的自定义用户创建了一个模型:

class CustomUser(AbstractUser):

    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
来自 firebase 的

UUID 似乎是由字母和数字组成的随机字符串,而 pythonUUID 有这么多不同的格式,我很困惑在我的情况下应该使用什么格式。 我的目标是在 django 中创建一个类似这样的用户:

CustomUser.objects.create(
        id=uuid.UUID('<<uuid from firebase>>'), 
        username="mikhail",
        email="email@example.com",...)

我该怎么做?

您可以对 id 列使用简单的 TextField 或 CharField。如果您有未知用户,您可以通过将默认参数添加到字段定义来生成 UUID。

def uuid_generator():
    return uuid.uuid4().hex

class CustomUser(AbstractUser):
    id = models.TextField(primary_key=True, default=uuid_generator)