gpt4 book ai didi

python - 如何使用 UUID

转载 作者:IT老高 更新时间:2023-10-28 21:48:49 24 4
gpt4 key购买 nike

我正在尝试为我的 Django 对象获取唯一 ID。在 Django 1.8 中,它们具有 UUIDField。我不确定如何使用此字段为模型中的每个对象生成唯一 ID。

这是我为 UUIDField 准备的内容

import uuid
from django.db import models

class MyUUIDModel(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)

class Person(models.Model):
...
unique_id = MyUUIDModel()

我可以重现 UUID 模型的 id,但每次我都会得到完全相同的 id。例如:

person = Person.objects.get(some_field = some_thing)
id = person.unique_id.id

id 然后每次都给我相同的 id。怎么了,怎么解决?

最佳答案

我不确定您为什么要创建 UUID 模型。您可以将 uuid 字段直接添加到 Person 模型中。

class Person(models.Model):
unique_id = models.UUIDField(default=uuid.uuid4, editable=False, unique=True)

每个人都应该有一个唯一的 id。如果您希望 uuid 成为主键,您可以这样做:

class Person(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)

您当前的代码尚未向此人添加字段。它在您执行 MyUUIDModel() 时创建了一个 MyUUIDModel 实例,并将其保存为类属性。这样做没有意义,每次加载 models.py 时都会创建 MyUUIDModel。如果你真的想使用 MyUUIDModel,你可以使用 ForeignKey .然后每个人将链接到不同的 MyUUIDModel 实例。

class Person(models.Model):
...
unique_id = models.ForeignKey(MyUUIDModel, unique=True)

但是,正如我之前所说,最简单的方法是将 UUID 字段直接添加到人员。

关于python - 如何使用 UUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32528224/

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