【问题标题】:Inheritance in Django model vs template usageDjango 模型中的继承与模板的使用
【发布时间】:2019-12-25 14:45:34
【问题描述】:

我对 Django 框架很陌生。 我有一个问题(问题)要解决。

我有模型设计: “宠物”类是抽象类。 三个类继承自 Pet: - 狗 - 猫 - 鸟

还有一个类 Registration,它的外键链接到 Pet 可以是这三种 Pets 中的任何一种。你能帮我设计一个这样的数据库结构的最佳实践是什么,以及如何使用 Django 模板框架来处理它?

【问题讨论】:

    标签: django django-models django-templates


    【解决方案1】:

    您想要实现一种称为多态关联的东西。

    也许

    1. 你应该看看django-polymorphic,或者

    2. 如果您愿意在注册模型中进行一些更改。只需添加一列,表示存储在哪个表中的键,这样您就会有一个包含 Dog、Cat 或 Bird 的列和另一个带有它们的 id 的列(不是作为外键,而是作为一个简单的整数)。这样,一旦您创建了用于存储和获取值的高效函数,您就不必再查看它了。 (对我有用)

    【讨论】:

    • 谢谢!但是,如果我想添加新的动物,比如兔子,我将不得不在 DB 中进行很多更改,不是吗?
    • 不是真的,假设您有 3 个表,并且在注册模型中,您有许多实例在这三个键(狗、猫、鸟)之间划分。你也有他们每个人的不同模型。现在假设你也有蝙蝠!您只需在新实例中添加蝙蝠,并且由于您要添加新动物,我想您无论如何都会为其添加新模型
    • 另外,如果有某种方法可以直接合并所有表格,我应该说您这样做,它将帮助您轻松添加和删除动物。或者只是在你的项目中包含 django-polymorphic
    猜你喜欢
    • 2010-12-23
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    • 2021-02-13
    • 2015-09-29
    • 1970-01-01
    • 2015-11-13
    相关资源
    最近更新 更多