Как мне создать поле модели Django, которое оценивается на основе других полей?

Я ' Попробую описать мою проблему на простом примере. Скажем, у меня есть элементы типа , элемент , и каждый элемент относится к определенному типу Категории . Теперь я могу взять любые два предмета и объединить их в комбинацию предметов типа ItemCombo . Это сочетание элементов относится к определенной категории под названием 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)
1
задан bennedich 27 September 2010 в 13:55
поделиться