2013-12-11 4 views
0

В моем models.pyДжанго результаты фильтрации на основе другой модели

class Packages(models.Model): 
     limit = models.PositiveIntegerField() 
     .. 

class SubscribedPackages(models.Model): 
     package = models.ForeignKey(Packages) 
     user = .. 
     .. 

в моем forms.py

package = forms.ModelChoiceField(queryset=Packages.objects.all(),...) 

Пусть пакет 1 имеет предел 10 и SubscribedPackages содержит 10 записей. Тогда какой должен быть запрос в forms.py, чтобы показать только те пакеты, предел которых достигнут.

ответ

1

Должно быть что-то вроде этого.

from django.db.models import Count 
Packages.objects.annotate(subs=Count('subscripberpackage')).filter(subs__gt=10) 
Смежные вопросы