Rizwan Mumtaz
Rizwan Mumtaz

Reputation: 3955

Django filtering results based on different model

In my models.py

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

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

in my forms.py

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

Suppose package 1 has limit of 10 and SubscribedPackages contains 10 entries. Then what should be the query in forms.py to show only those packages whose limit has't been reached..

Upvotes: 0

Views: 38

Answers (1)

kanu
kanu

Reputation: 726

Should be something like this.

from django.db.models import Count
Packages.objects.annotate(subs=Count('subscripberpackage')).filter(subs__gt=10)

Upvotes: 1

Related Questions