gpt4 book ai didi

Django - 一个类的所有子类实例的唯一 ID?

转载 作者:行者123 更新时间:2023-12-04 04:51:37 25 4
gpt4 key购买 nike

很抱歉,我想不出更好的方法来描述标题中的问题,如果可以,请随时进行编辑:)

我的问题是这样的:在 Django 中,我有一个名为 Item 的抽象类(子类化models.Model)。然后我有一堆 Item 的子类,例如 FoodItem、BookItem、ToyItem……我决定采用这种结构是因为每个 Item 几乎都有相同的字段(Item name 等),但用法会有所不同,具体取决于它是什么类型。

然而,我希望每个项目都有一个唯一的标识符,以便我可以轻松引用它。由于每个子类都是它自己的数据库表,我认为我不能使用主键。我怎样才能让每个 Item 都有一个唯一的 id,而不是每个 FoodItem 都有唯一的 id 但可能与 BookItems 等重叠......它是?

如果有更好的方法,我愿意以不同的方式这样做。谢谢。

最佳答案

我强烈建议使用 django-typed-models ( github )。它的存在是为了解决您的问题(许多子类具有大部分相同的字段但行为不同)并且您可以免费获得唯一的主键。

从维基页面:

Features

  • Automatic downcasting of models from querysets.
  • All models subclassing a common base are stored in the same table
  • object types are stored in a 'type' field in the database
  • No extra queries or joins to retrieve multiple types

关于Django - 一个类的所有子类实例的唯一 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17354001/

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