2015-04-12 7 views
0

У меня есть модели A и B, которые, как это:Джанго внешнего ключа количества запросов

class B(models.Model): 
    x_count = models.IntegerField() 
    y_count = models.IntegerField() 

class A(models.Model): 
    name = models.CharField() 
    b = models.ForeignKey(B) 

Я пытаюсь запросить все экземпляры A, что имеет b, в которых в общей сложности x_count и y_count равна нулю. Что-то вроде

SELECT A.name FROM A, B WHERE A.b = B.id AND B.x_count + B.y_count > 0. Как я могу это сделать в Django?

ответ

0

https://docs.djangoproject.com/en/1.8/topics/db/queries/#filters-can-reference-fields-on-the-model может помочь.

Вы можете использовать их для «сравнения значения поля модели с другим полем на той же модели».

Таким образом, ваш запрос может выглядеть следующим образом (непроверенные)

from django.db.models import F 
A.objects.filter(x_count=-F('y_count')) 
Смежные вопросы