문제

Is this finally possible in Django? Without this feature, using ORM is kinda strange.

도움이 되었습니까?

해결책

There are actually two sections in the Django aggregation docs called filtering on annotations and order_by() that should get you what you need:

books_w_author_count = Book.objects.annotate(num_authors=Count('authors'))

# just a filter by number of objects
books_w_author_count.filter(num_authors__gt=1)

# just ordering on the count
books_w_author_count.order_by('num_authors')

class Author(modules.Model):
   # ...

class Book(models.Model):
   # ...
   authors = models.ManyToManyField(Author)

다른 팁

You can this by using anotate function. Here you can find an example

And docs here

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top