django 中 fk 的迭代

发布于 2024-11-08 12:44:19 字数 424 浏览 1 评论 0原文

如果我现在在 django 模型中有这样的表,

person
------
id
name

worker
------
personid
jobid

job
---
id
desc
wage

w=Worker.objects.filter(<some sort of filter)

我想要在 w
中相关的所有 person 给出了 w 我无法使用该语句。

最终我想返回一个代表 dict
的 json 字符串 以 idperson 作为键,以 {"job":jobid,"wage":wage} 作为
jobs 列表中该键的一个值

if I have table like this represented in django model

person
------
id
name

worker
------
personid
jobid

job
---
id
desc
wage

w=Worker.objects.filter(<some sort of filter)

now I want all persons that are related in w
w is given I can not use that statement.

eventually I want to return a json string that represents a dict
with idperson as key and {"job":jobid,"wage":wage} as
one value in list of jobs for that key

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

狼性发作 2024-11-15 12:44:19

您应该能够输入您想要的任何对象集合。它应该看起来像:

w = Worker.objects.filter(job__in=Job.objects.filter(somefilterhere))

从这里当然你可以迭代你的工作人员并建立你的列表:

somelist = []
for worker in w:
    somelist.append({'person': worker.person.id, 'wage': worker.job.wage})

You should be able to us an in, with any collection of objects you wish. It should look something like:

w = Worker.objects.filter(job__in=Job.objects.filter(somefilterhere))

From here of course you could iterate over your workers and build up your list:

somelist = []
for worker in w:
    somelist.append({'person': worker.person.id, 'wage': worker.job.wage})
深爱不及久伴 2024-11-15 12:44:19

http://docs.djangoproject.com/en/ 1.3/topics/db/queries/#following-relationships-backward

Person.objects.filter(worker__id__in=[worker.pk for worker in w])

信用支持

http://docs.djangoproject.com/en/1.3/topics/db/queries/#following-relationships-backward

Person.objects.filter(worker__id__in=[worker.pk for worker in w])

credit to support

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文