Я постараюсь описать мою проблему на простом примере. Скажем, у меня есть предметы типа Item
, и каждый предмет относится к определенному типу Category
. Теперь я могу взять любые два предмета и объединить их в комбо типа ItemCombo
. Этот предмет относится к определенной категории ComboCategory
. Значение ComboCategory
основано на том, к каким категориям относятся элементы, поэтому я не хочу жестко кодировать combocategory
в ItemCombo
в случае изменения категорий элементов. Можно ли как-то сделать combocategory
виртуальным полем в ItemCombo
, которое оценивается как раз вовремя?
class Category(models.Model):
value = models.CharField(max_length=1)
class Item(models.Model):
value = models.CharField(max_length=10)
category = models.ForeignKey(Category)
class ComboCategory(models.Model):
category1 = models.ForeignKey(Category)
category2 = models.ForeignKey(Category)
value = models.CharField(max_length=1)
class ItemCombo(models.Model):
item1 = models.ForeignKey(Item)
item2 = models.ForeignKey(Item)
combocategory = models.ForeignKey(ComboCategory)