首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编写动态Django模型?

如何编写动态Django模型?
EN

Stack Overflow用户
提问于 2010-02-05 21:44:52
回答 2查看 575关注 0票数 1

我想要的是收到建议来定义一个可重用的完整产品模型,对于一个购物网站应用程序,现在我知道商店将与“服装”进行商业,所以产品模型将有一个“季节或集合”关系,但在未来我应该使用该应用程序与X产品进行商业,例如:“汽车”,它有“机械规格”的关系。

因此,我在元模型中思考,创建一个由键/值定义的通用模型,但是,如何建立关系呢?

但是,你们是专家社区,我希望你们能帮助我看得更远。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-05 22:40:40

定义一个对象和许多其他类型的对象之间关系的一种方法是使用GenericForeignKeyContentType framework。我猜您可能正在寻找具有更具体的相关对象(如Jacket )的Product。它可能看起来像这样:

代码语言:javascript
复制
class Product(models.Model):
    price = models.FloatField()
    description = models.TextField()
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    details = generic.GenericForeignKey('content_type', 'object_id')

class Jacket(models.Model):
    size = models.PositiveIntegerField()
    color = models.CharField(max_length=25)

这允许您定义类似于Jacket的任意数量的模型,这些模型可以与您的产品相关联。

代码语言:javascript
复制
jacket = Jacket(size=69, color="pink")
jacket.save()
prod = Product(price=0.99)
prod.details = jacket  # It's like magic!
prod.save()

这确实增加了创建大量模型的额外工作,但它也允许您在存储什么数据以及如何存储数据方面非常有创意。

票数 3
EN

Stack Overflow用户

发布于 2010-02-05 22:11:02

一种流行的选择是使用像标签这样的东西。这样你就有了所有商品的通用信息,比如商品ID、名称、描述、价格。然后,在另一个表中会有一些更通用的标记或描述标记,与这些项相关联。你可以有一个代表季节的标签,或者汽车规格,等等。

当然,这真的取决于您如何设计系统来处理这些额外的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2207562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档