Запрос объекта Django на количество связанных объектов «один ко многим» - PullRequest
1 голос
/ 29 марта 2011

Я хотел бы обновить объект в Django, если у него есть только одно отношение «один ко многим» (родительский объект, который удаляется мягко.)

Есть ли способ запроса объекта кузнать, сколько у него отношений «многие ко многим»?

Вот моя попытка (не удалась):

  pages = Page.objects.filter(accounts=accountid)
    for page in pages:
        if page.accounts.all().count == 1:
            page.deleted = 1
            user.save()  

Спасибо.

1 Ответ

2 голосов
/ 29 марта 2011

Не уверен насчет вашей схемы, но в моем примере объект Car имеет Fk to User, вызывающий 'user':

User.objects.annotate (num_cars = Count ( 'автомобили')). Фильтр (num_cars = 1) Это дает вам пользователей, у которых есть только один автомобиль.

http://docs.djangoproject.com/en/dev/topics/db/aggregation/#joins-and-aggregates

...