gpt4 book ai didi

python - 如何拥有不带破折号的 models.UUIDField 字段

转载 作者:太空宇宙 更新时间:2023-11-03 13:28:01 24 4
gpt4 key购买 nike

我尝试使用 default=uuid.uuid4().hex(而不是 default=uuid.uuid4( ))

class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
api_key = models.UUIDField(default=uuid.uuid4().hex, editable=False, unique=True)
subscription = models.IntegerField(
choices=[(s.value, s.name) for s in Subscription],
null=False,
blank=False
)

def __str__(self):
return str(self.api_key)

但是,生成的结果仍然带有破折号。

django=# select * from users_profile;
id | api_key | secret_key | subscription | user_id
----+--------------------------------------+------------+--------------+---------
1 | 9da3546c-660c-46c6-adc4-6a13e6ee202b | | 0 | 1
2 | 9cbc3a68-7f50-4b18-9e61-7b009f22a0e8 | | 0 | 2
(2 rows)

我可以知道如何让 models.UUIDField 字段不带破折号吗?。我想在没有破折号的情况下存储在数据库中,并在没有破折号的情况下使用它。

最佳答案

您有没有使用过 PostgreSQL? UUIDField 可能正在使用 native uuid type对于专栏。它仅使用 16 个字节(没有破折号)有效地存储它。如果是这种情况,它不会存储破折号,只会在您选择时显示它们。

好消息是在 Python 代码中你得到了一个 UUID object , 所以你可以做 self.api_key.hex 来得到一个没有破折号的字符串。

关于python - 如何拥有不带破折号的 models.UUIDField 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52005741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com