我會試着用一個簡單的例子來描述我的問題。假設我有Item
類型的物品,每個物品都與某種類型的Category
相關。現在我可以將任意兩件物品合併成ItemCombo
類型的物品。該itemcombo涉及到一個名爲ComboCategory
的類別。 ComboCategory
基於這些項目與哪些類別有關,因此我不希望對ItemCombo
中的combocategory
進行硬編碼,以防項目類別發生變化。我能以某種方式使combocategory
成爲ItemCombo
中的一個虛擬字段,它恰好可以及時評估嗎?如何創建基於其他字段進行評估的Django模型字段?
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)
我已經試過這個,它不能解決問題,因爲我無法以這種方式進行查詢,例如篩選某個combocategory的所有組合。 – bennedich 2010-09-27 16:07:02
是的,沒錯,您無法查詢此屬性。查詢是以字段的形式針對存儲在數據庫中的數據完成的。 – 2010-09-27 17:37:56