当前位置: 首页 > 面试题库 >

如何在Django中使用UUID

羿博延
2023-03-14
问题内容

我正在尝试为我的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()时,它已创建一个实例,并将其保存为类属性。这样做是没有意义的,MyUUIDModel每次加载models.py时都会创建。如果您确实想使用MyUUIDModel,则可以使用ForeignKey。然后,每个人都将链接到不同的MyUUIDModel实例。

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

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



 类似资料:
  • 问题内容: 我听说过redis-cache,但是它是如何工作的呢?通过以某种方式缓存rdbms查询,它是否被用作Django和我的rdbms之间的一层? 还是应该直接将其用作数据库?我对此表示怀疑,因为该github页面不包含任何登录详细信息,所以没有设置..只是告诉您设置一些config属性。 问题答案: 这个Redis的Python模块在自述文件中有一个清晰的用法示例:http : //git

  • 问题内容: 从Internet的一些示例中,我做了下面的测试代码。有用! …但是,如果我重新加载页面,则饼图将使用相同的图像进行绘制。每次重新加载页面时,某些部件的颜色都会变深。当我重新启动开发服务器时,它将被重置。如何在Django中使用Matplotlib正确绘制?看起来好像还记得一些图纸… 源views.py(让urls.py链接到它): 我正在使用Django 1.0.1和Python 2

  • 问题内容: 我想用datepicker实现django表单。我做了我的forms.py views.py balance.html 而且在该表格的输入框中仍然没有日期选择器。我也尝试像在balance.html中一样在脚本中包含文件链接 datepicker仍然无法正常工作。但是,当在我的html文件中包含jquery时,这也使得我在我的html文件中实现的jquery-treetable无法工作

  • 问题内容: 我想在Django中使用postgreSQL模式,该怎么做? 问题答案: 我一直在使用: 过去没有意识到仅适用于只读操作。当你尝试添加新记录时,它将失败,因为该序列类似于“ schema.tablename” _column_id_seq。 到目前为止还可以。谢谢。

  • 问题内容: 我正在尝试在Django中使用jQuery / AJAX发布数据,并且遇到了麻烦。当我运行下面的代码并单击“测试”按钮时,整个页面将再次重新加载,这不是我想要的(这就是我使用AJAX的原因)。 我也无法确认AJAX请求正在进入Django视图。 编辑:我对return false和进行了编辑。无法加载新页面,但仍无法在该字段中看到更新的文本。我不确定是否正在发送数据。我在控制台中看到:

  • 问题内容: 我有一个带有数据库和相应的 models.py 文件的现有Django应用程序。 我有一个新的Tornado应用程序,可以为其他应用程序提供Web服务。它需要从同一数据库读取/写入,并且我要使用的模型文件中有代码。 如何在Tornado请求处理程序中最好地使用Django数据库和模型?它像建立到 models.py Django项目文件夹的符号链接,导入Django模块并使用它那样简单