Django REST框架复杂查询

0 投票
1 回答
1159 浏览
提问于 2025-04-18 13:47

我已经创建了一个数据库。每个表在Django中都有一个模型。

现在有这三个表,加上客户的主键:客户 <-- 会员 --> 俱乐部。

我该如何使用Django的REST框架来制作一个网络服务,以显示这三个表的数据呢?我需要为这些网络服务的数据创建一个非持久化的模型吗?

我对Python、Django和REST框架都很陌生。通过以下代码,我可以按照我想要的方式查询这三个表,虽然我希望能把这三个表的数据(实际上是客户和俱乐部的数据)合并成一个结果,这样我就可以把这个结果发送到REST框架,从而通过URL访问并获取JSON响应。

cId = Customer.objects.all().filter(pk=1)
memberships = Membership.objects.all().filter(customer_id=cId)
clubs = Club.objects.all().filter(pk__in=memberships)

我这样做是为了学习如何在Django中使用REST制作一个复杂的网络服务。

任何提示都会很感激。

1 个回答

0

你有没有在外键字段上设置相关名称(related_name)?这样你就可以通过这个名称进行反向查询了。根据你的描述,你需要在客户(Customer)和俱乐部(Club)之间建立多对多的关系。这就是Django ORM的强大之处。你可以查看一下文档,了解如何使用多对多关系:https://docs.djangoproject.com/en/1.5/topics/db/queries/#many-to-many-relationships

如果你能提供你的模型,我可以给你一些具体的查询代码示例。

撰写回答