gpt4 book ai didi

python - 将复杂的 python 对象映射到 django 模型

转载 作者:行者123 更新时间:2023-11-28 16:54:51 25 4
gpt4 key购买 nike

我的应用程序中有一个特定的类结构,目前使用 django 进行演示。我根本没有使用模型层,- 数据库交互例程是手写的。

但是,我正在考虑实际使用 django 以充分发挥其潜力并实际使用数据库抽象层的可能性。问题是如何最好地将我现有的类结构与模型层集成。

示例类:

class UpperClass(base):
def __init__(self, attr1, attr2):
self.attr1 = attr1
self.attr2 = attr2
# attr1 and attr2 are actually instances of, say,
# CustomType1 and CustomType2

下面是我如何将其映射到 Django 模型:

class UpperClass(models.Model):
attr1 = CustomType1Field(...)
attr2 = CustomType2Field(...)

这很简单——所有序列化和验证的东西都已经写好了,所以想出 CustomType1 和 CustomType2 的自定义字段类一点也不难。

真正的问题是,我应该把实际 UpperClass 的自定义(非数据库相关)行为放在哪里。在我的理解中,模型是为了“将事物输入和输出数据库”,但是行为会去哪里呢?我是否将与数据库无关的方法嵌入到 UpperClass 的模型实例中?真的,我在这里不知所措。希望这至少对您有部分意义。

最佳答案

这在某种程度上取决于您要编码的具体行为。在大多数情况下,您应该尝试将每个对象的行为放入模型类中。毕竟,它是一个常规的 Python 类,因此您可以为其提供所需的任何方法。当然,您确实需要考虑持久性,例如通过避免超出架构中指定的其他成员数据。

关于python - 将复杂的 python 对象映射到 django 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1618773/

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