我有一个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