我有一個1:在兩個模型類在我的Django應用一對多的關係:如何創建自定義的外國套Django模型
class CheckList(models.Model):
user = models.ForeignKey(User, related_name='checklists')
name = models.CharField(max_length=50)
class CheckListItem(models.Model):
user = models.ForeignKey(User, related_name='items')
checklist = models.ForeignKey(WishList, related_name='items')
is_checked = models.BooleanField(default=False)
大部分的時間,我想提出一個用戶的清單以及每個清單的物品,而且非常香草。
但是,我也想要一些包含自定義列表項目的「虛擬清單」。
我想做到這一點:
def get_checklist_checked(user):
checklist = CheckList(name='My Checked Items', user=user)
checklist.items = CheckListItem.objects.filter(user=user, check=True)
return checklist
當然現在,checklist.items
是一個數組,而通常checklist.items
是一個經理。
處理這種情況的正確方法是什麼?
你想在list.items被調用時返回對象的相關列表項嗎?另外,請使用比'list'更好的變量。 – karthikr 2014-09-19 13:59:08
爲了說明的目的,我使用泛型,但我可以看到它如何變得混亂。大多數時候,list.items檢索相關項目(基於FK關係),但是我希望能夠構建臨時的'list'對象(它們本身不在數據庫中)。一個例子中的「list」對象將包含所有具有「check = True」的項目。 – ryansilva 2014-09-19 14:05:02
你有沒有考慮過使用「自定義管理器」? – karthikr 2014-09-19 14:20:30