Python 如何编写动态Django模型?
我想要的是,接受建议,以定义一个可重复使用的产品模型,对于一个购物网站应用程序,现在我知道该商店将与“服装”进行商业交易,因此该产品模型将具有“季节或系列”关系,但在未来,我应该使用该应用程序与X产品进行商业交易,例如:“汽车”,它们具有“机械规格”关系 所以我在考虑元模型,创建一个由键/值定义的通用模型,但是,如何建立关系呢Python 如何编写动态Django模型?,python,django,Python,Django,我想要的是,接受建议,以定义一个可重复使用的产品模型,对于一个购物网站应用程序,现在我知道该商店将与“服装”进行商业交易,因此该产品模型将具有“季节或系列”关系,但在未来,我应该使用该应用程序与X产品进行商业交易,例如:“汽车”,它们具有“机械规格”关系 所以我在考虑元模型,创建一个由键/值定义的通用模型,但是,如何建立关系呢 但是,您是专家社区,我希望您能帮助我了解更多。一个流行的选择是使用类似于标记的东西。因此,您将拥有所有项目的通用内容,如项目ID、名称、说明、价格。然后您将在另一个表中拥
但是,您是专家社区,我希望您能帮助我了解更多。一个流行的选择是使用类似于标记的东西。因此,您将拥有所有项目的通用内容,如项目ID、名称、说明、价格。然后您将在另一个表中拥有一些更通用的标记或描述的标记,与这些项目关联。您可以ld有一个表示季节或汽车规格等的标签
当然,这真的取决于您如何设计系统来处理这些附加信息。定义一个对象和许多其他类型对象之间关系的一种方法是使用a和。我猜您将寻找一个带有一些更具体的相关对象(如
夹克
)的产品看起来像这样:
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(size=69, color="pink")
jacket.save()
prod = Product(price=0.99)
prod.details = jacket # It's like magic!
prod.save()
这确实增加了创建大量模型的额外工作,但它也允许您对存储的数据和存储方式非常有创意。如果我们这样运行:IntegrityError:(1048,“content\u type\u id”列不能为空)你是对的。我没有运行那一段代码,订单已经关闭。我已经修复了它,以便它能够正常工作。谢谢你,杰克M。那么反过来怎么办?都在文档中。