class Categories(MPTTModel):
parent = TreeForeignKey(u'self', related_name=u'children')
title = models.CharField(max_length=128)
...
class Products(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL)
category = models.ForeignKey(Categories, related_name=u'category')
price = models.DecimalField(u'Цена', max_digits=8, decimal_places=2, default=Decimal(0.00))
... # только главные поля
# добавлять сюда эти критерии тоже не разумно, тип:
color = models.ManyToManyField(Colors) # т.к. Критерии зависят от выбранной категории, зачем здесь этот огромный список
...
У каждого продукта есть его критерии, их бесконечное множество. Которые со временем добавляются. Делать так тоже кажется не разумно:
class Colors(models.Model):
title = models.CharField(max_length=64, unique=True)
class Materials(models.Model):
title = models.CharField(max_length=128, unique=True)
...
# и потом
Criteries(models.Model):
color = m2m(Colors)
...
причем критерии зависят от Категории, т.е. В зависимости от категории меняются и критерии