итерация по FK в Джанго - PullRequest
0 голосов
/ 20 мая 2011

если у меня есть таблица, представленная в модели django

person
------
id
name

worker
------
personid
jobid

job
---
id
desc
wage

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

теперь я хочу все persons, которые связаны в w
w дано, я не могу использовать это утверждение.

в конце концов я хочу вернуть строку json, которая представляет dict
с idperson в качестве ключа и {"job":jobid,"wage":wage} в качестве
одно значение в списке jobs для этого ключа

Ответы [ 2 ]

0 голосов
/ 20 мая 2011

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])

кредит на поддержку

0 голосов
/ 20 мая 2011

Вы должны быть в состоянии получить любую коллекцию предметов, которую пожелаете.Это должно выглядеть примерно так:

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})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...