Re: Order model objects by foreign key "set" count
This post was exactly was I was looking for! Just a reminder, don't forget to from db.models import Count On Jan 11, 8:51 pm, Margie Roginskiwrote: > Ah - yes, that is so awesome! For anyone interested, here's the magic > incantation: > > Book.objects.annotate(Count('reader')).order_by('reader__count') > > Or more verbosely: > > Book.objects.annotate(num_readers=Count('reader')).order_by > ('num_readers') > > That documentation link describes it very well. Thanks Scott! > > Margie > > On Jan 11, 7:51 pm, Scott Maher wrote: > > > > > Margie Roginski wrote: > > > Say I have a Readermodelthat has aforeignkeyto a Book > > > > class Reader(models.Model): > > > book = models.ForeignKey(Book) > > > > Now say I want to find all books andorderthem by the number of > > > readers. Is that possible, ie something like this? > > > > Book.objects.all().order_by(reader_set__count) > > > > This syntax doesn't work, however. Is this possible? > > > > Margie > > > I can't give you specific code but I think that you want is under the > > Aggregation section of the documentation. Specifically I think you want > > to apply the Count object on the Book reader set. You were almost there. :) > > >http://docs.djangoproject.com/en/dev/topics/db/aggregation/#topics-db... -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.
Re: Order model objects by foreign key "set" count
Ah - yes, that is so awesome! For anyone interested, here's the magic incantation: Book.objects.annotate(Count('reader')).order_by('reader__count') Or more verbosely: Book.objects.annotate(num_readers=Count('reader')).order_by ('num_readers') That documentation link describes it very well. Thanks Scott! Margie On Jan 11, 7:51 pm, Scott Maherwrote: > Margie Roginski wrote: > > Say I have a Reader model that has a foreign key to a Book > > > class Reader(models.Model): > > book = models.ForeignKey(Book) > > > Now say I want to find all books and order them by the number of > > readers. Is that possible, ie something like this? > > > Book.objects.all().order_by(reader_set__count) > > > This syntax doesn't work, however. Is this possible? > > > Margie > > I can't give you specific code but I think that you want is under the > Aggregation section of the documentation. Specifically I think you want > to apply the Count object on the Book reader set. You were almost there. :) > > http://docs.djangoproject.com/en/dev/topics/db/aggregation/#topics-db... -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.
Re: Order model objects by foreign key "set" count
Margie Roginski wrote: Say I have a Reader model that has a foreign key to a Book class Reader(models.Model): book = models.ForeignKey(Book) Now say I want to find all books and order them by the number of readers. Is that possible, ie something like this? Book.objects.all().order_by(reader_set__count) This syntax doesn't work, however. Is this possible? Margie I can't give you specific code but I think that you want is under the Aggregation section of the documentation. Specifically I think you want to apply the Count object on the Book reader set. You were almost there. :) http://docs.djangoproject.com/en/dev/topics/db/aggregation/#topics-db-aggregation -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.
Order model objects by foreign key "set" count
Say I have a Reader model that has a foreign key to a Book class Reader(models.Model): book = models.ForeignKey(Book) Now say I want to find all books and order them by the number of readers. Is that possible, ie something like this? Book.objects.all().order_by(reader_set__count) This syntax doesn't work, however. Is this possible? Margie -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.