动态选择模型

时间:2019-07-30 06:12:55

标签: python django

我正在第一个商务网站上工作。我有多种选择完全不同的产品(型号,颜色,质量等),所以我希望我的每种产品都有不同的选择。我很困惑应该在产品模型中添加哪种字段。以及如何设法为每个产品添加选择。非常感谢

Config changes=20000480 {1.0 ?mcc?mnc [en_US] ldltr sw411dp w411dp h748dp 560dpi

1 个答案:

答案 0 :(得分:1)

模型字段不应被认为是动态的,因为它们与数据库直接相关,因此它们并不是为此而设计的。我会尝试将Product创建为抽象模型,并将其扩展到每种类型的商品(例如鞋,包,衣服等)。抽象模型为您提供了创建其他模型的弹性,最重要的是,您的基本抽象类不是 strong>作为数据库中的表创建,因此您不必理会基本的Product字段。这是一个示例models.py

class Product(models.Model):
    name                = models.CharField(max_length=100)
    description         = models.TextField()
    price               = models.DecimalField(max_digits=5,decimal_places=2)
    category            = models.ForeignKey('Category', null=True, blank=True,on_delete=models.DO_NOTHING)
    slug                = models.SlugField(default='hello')
    image               = models.ImageField(null=True, blank=True) 
    available           = models.BooleanField(default=True)

    class Meta:
        abstract = True

class Shoe(Product):
    colors              = models.CharField()
    size                = models.IntegerField()

class Clothes(Product):
    colors              = models.CharField()
    size                = models.CharField()
    clothes_type        = models.CharField()

# etc.