2013-05-09 88 views
0

我有两个模型。父亲和儿子模型。在儿子模型中的关系是:Django - 获取具有多个对象的模型的最后一个对象

father = models.ForeignKey(Father, related_name="father") 

现在在真正的数据库中,我有5个父亲,每个父亲有5个儿子。我想找到儿子,20

father = Father.objects.all() 
#how to find all sons with age 20? 

回答

1

年龄您的标题不完全匹配你的问题,你的问题是缺少信息。但是,这是你想要的吗?

fathers = Fathers.objects.all() 
sons = Son.objects.filter(father__in=fathers, age=20) 

但是,假设所有的儿子有父亲的,你可以只写为

sons = Son.objects.filter(age=20) 

如果您是从一个父亲寻找所有的儿子20岁:

father = Fathers.objects.get(id=101) 
sons = Son.objects.filter(father=father, age=20) 

这是假设你有一个不同的父亲和儿子的模型(这不是一个好的设计决策,但这是我从你的问题中了解到的)。

+0

谢谢。但这里还有一个小问题。我可以编写一个模型的方法,它需要参数并在模板中使用此方法?我可以做吗? – doniyor 2013-05-09 14:29:14

+0

询问这是一个单独的问题,并阅读堆栈溢出常见问题。 – Joe 2013-05-09 14:29:50

+0

(答案是否定的,您必须创建一个新的模板标签或在视图中调用该函数) – Joe 2013-05-09 14:30:47

相关问题