在Django中,我有以下models.py如何创建“知道”它是什么类别的django数据库模型?
class Product(RandomPrimaryIdModel):
title = models.CharField(max_length=20, blank=True, null=True)
price = models.CharField(max_length=20, blank=True, null=True)
condition = models.CharField(max_length=20, blank=True, null=True)
class Mattress(Product):
length = models.CharField(max_length=50)
size = models.CharField(max_length=5)
class Pillow(Product):
shape= models.CharField(max_length=50)
comfort= models.CharField(max_length=5)
的想法是,有一个“产品”模型和几个“产品类型”的车型。我正在尝试创建一个与两者相关的数据库方案。最终目标是,当我允许访问product_type未知的对象的主ID时,我可以简单地查询/过滤该对象以查明product_type与对象的关系。
我知道这听起来有点混乱,但我该如何去实现正确的方式?目前的方案(上面的方案)不是我相信的正确解决方案。
最好不要对'CharField'使用'null = True',ref [doc](https://docs.djangoproject.com/en/1.4/ref/models/fields/):“避免使用null on基于字符串的字段,如CharField和TextField,除非你有一个很好的理由......“ – okm 2012-08-10 06:05:04
一旦你有产品类型,你会做什么?将这种行为作为产品类型的方法来实施会不会更好?因此,例如,“床垫”的“描述”方法将使用其长度和尺寸,而枕头的使用方式则使用其形状和舒适度。然后代码不会关心它是什么类型的对象,它只会得到它的描述。在面向对象的框架中,通常显式地测试类是一个红旗。 – Spacedman 2012-08-10 08:32:35