如何在Django中合并querysets?我使用Django Rest框架。在
我使用以下模型:
class City(models.Model):
...
class House(models.Model):
city = models.ForeignKey(City, ...)
...
class Resident(models.Model):
house = models.Foreignkey(House, ...)
...
我现在想要一个视图,列出给定城市的所有居民(slug是城市的slug)。在
我是这样写的:
^{pr2}$如您所见,我创建了一个城市的居民列表,通过迭代所有的市民并过滤那些居住在正确城市的家庭的人。我只是觉得这是相当糟糕和低效,因为数据库必须循环通过所有公民。 最好有这样的东西
City.objects.get(slug=<cityslug>).houses.residents
那么我只需要在较小的城市里环游。显然,问题在于上面的查询返回了一个queryset。所以我不能像那样把房子和居民连起来。在
附言:如果你有其他的建议,我可以改善我的看法,让我知道!在
PPS:我在stackoverflow上找到了this问题,但它只显示了如何获取一个列表,而这个列表不能与getqueryset和django rest结构一起使用,是吗?在
编辑(更多说明以使问题更好): 因此,我们的目标是实现api路线:
localhost:8000/api/house/<city_slug>/residents/
把城里所有的居民都列出来。在
像这样:
{
[
{
resdidentid = "<some_resident_id>",
residentname = "<some_resident_name>",
...
},
{
resdidentid = "<some_resident_id>",
residentname = "<some_resident_name>",
...
},
{
resdidentid = "<some_resident_id>",
residentname = "<some_resident_name>",
...
},
...
]
}
目前没有回答
相关问题 更多 >
编程相关推荐