Вы должны определить свое поле в определении класса. Это означает, что вы должны взломать процесс создания классов. Потому что после того, как оно было создано, оно становится конкретным. Я действительно понятия не имею, есть ли шанс изменить поле после этого.
ли использовать разные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"
Причина, по которой я использую миксины, заключается в том, что у меня есть атрибуты / выбор, которые можно разделить между разными моделями (например, также наличие женских / мужских брюк, которые могут иметь такой же выбор цвета, но разные размеры, чем футболки). В целом, однако, вся одежда имеет цвет и размер.
Как мне это сделать?