我想要的是收到建议来定义一个可重用的完整产品模型,对于一个购物网站应用程序,现在我知道商店将与“服装”进行商业,所以产品模型将有一个“季节或集合”关系,但在未来我应该使用该应用程序与X产品进行商业,例如:“汽车”,它有“机械规格”的关系。
因此,我在元模型中思考,创建一个由键/值定义的通用模型,但是,如何建立关系呢?
但是,你们是专家社区,我希望你们能帮助我看得更远。
发布于 2010-02-05 22:40:40
定义一个对象和许多其他类型的对象之间关系的一种方法是使用GenericForeignKey和ContentType framework。我猜您可能正在寻找具有更具体的相关对象(如Jacket )的Product。它可能看起来像这样:
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的任意数量的模型,这些模型可以与您的产品相关联。
jacket = Jacket(size=69, color="pink")
jacket.save()
prod = Product(price=0.99)
prod.details = jacket # It's like magic!
prod.save()这确实增加了创建大量模型的额外工作,但它也允许您在存储什么数据以及如何存储数据方面非常有创意。
发布于 2010-02-05 22:11:02
一种流行的选择是使用像标签这样的东西。这样你就有了所有商品的通用信息,比如商品ID、名称、描述、价格。然后,在另一个表中会有一些更通用的标记或描述标记,与这些项相关联。你可以有一个代表季节的标签,或者汽车规格,等等。
当然,这真的取决于您如何设计系统来处理这些额外的信息。
https://stackoverflow.com/questions/2207562
复制相似问题