相同的字段,Django模型子类中的不同选择

Lex*_*exo 9 django django-models

是否可以对choices模型的子类使用不同的?以下代码应该给你一个想法

class Clothing(models.Model):
    size = models.CharField(max_length=1)
    colour = models.CharField(max_length=1)

SHIRT_SIZES = {
    'S','Small',
    'M','Medium',
    'L','Large',
}

class TShirt(models.Model):
    size = models.CharField(max_length=1, choices=SHIRT_SIZES)

MENS_CHOICES = {
    'K','Black',
    'R','Red',
    'B','Blue',
}

class MensColours(models.Model):
    colour = models.CharField(max_length=1, choices=MENS_CHOICES)

class MensShirt(MensColours, TShirt):
    class Meta:
        verbose_name = "men's shirt"

WOMENS_CHOICES = {
    'P','Pink',
    'W','White',
    'B','Brown',
}

class WomensColours(models.Model):
    colour = models.CharField(max_length=1, choices=WOMENS_CHOICES)

class WomensShirt(WomensColours, TShirt):
    class Meta:
        verbose_name = "women's shirt"
Run Code Online (Sandbox Code Playgroud)

我使用mixins的原因是我有可以在不同模特之间共享的属性/选择(例如,也有女士/男士裤子,可能有相同的颜色选择,但尺寸选择不同于TShirts).但总的来说,所有服装都有颜色和尺寸.

我该怎么做?

Ign*_*ams 5

不可以.潜在的字段选择在父母中是固定的.您可以通过指定表单字段的有效选项来解决此问题,但不能更改模型字段的基本属性.

  • 这仍然是真的吗?什么是抽象的基类或来自函数的选择? (4认同)