gpt4 book ai didi

python - Django:关于设计具有不同字段的模型的建议

转载 作者:行者123 更新时间:2023-11-30 23:57:37 25 4
gpt4 key购买 nike

我正在寻找一些关于在 django 中创建动态模型的最佳方法的建议/意见。

该结构需要描述产品的数据。大约有 60 个可能相关的不同数据点,每个产品根据其产品类型选择大约 20 个这些点(有很多重叠)。大约有 2 打不同的 ProductType,每个 ProductType 属于 6 个类别之一。

显而易见但不优雅的方法是将所有 100 个数据点放入 Product 模型中,然后进行挑选,并忽略任何留空的字段。优点:很明显。缺点:丑陋,如果我需要添加更多数据点,就需要更新数据库。

我的想法是让每个产品完全抽象,只定义它的产品类型和其他一些识别特征。

class Product(models.Model):
productType = models.ForeignKey(ProductType)

然后,我将为每种数据点(数字、文本、日期等)建立一个单独的模型,如下所示:

class TextData(models.Model):
fieldName = models.CharField(etc)
verboseName = models.CharField(etc)
data = models.CharField(etc)
product = models.ForeignKey(Product)

最后,我将创建一个模型,定义哪些类型的数据与每种产品类型相关,以及每个数据点应该被称为什么。

class ProductType(models.Model):
name = models.CharField(etc)
....

所以主要问题是:当产品类型的相关字段可能发生变化时,填写这些字段的最佳方法是什么?也许另一个模型保存数据点的名称/类型,以及 ProductType 和该模型之间的 ManyToManyField ?带有 XML 的文本字段?定义结构的外部 XML 字段?放弃这整个追求并选择更好的东西?

感谢您的帮助!

最佳答案

如果您正在寻找 django 中模型的动态属性的实现,例如 eav style ,看看eav-django ,或在 django-expando .

关于python - Django:关于设计具有不同字段的模型的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3610327/

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