10👍
The work-around is to use values('distinct_fieldname')
because this will make the final SQL statement perform GROUP BY
on that field (you can add more than one fieldname), which essentially is the same.
For instance, if you want to know how many articles exist for a given 'filename'
you would do this:
results = Attachments.objects.filter(currency='current').values('filename').annotate(num_attachments=Count('article_id')).order_by("num_attachments")
4👍
I have find another way, how to overcome this – by using a subquery:
distinct_articles = Attachments.objects.distinct('article_id')
results = Attachments.objects.filter(currency='current').annotate(num_attachments=Count('article_id')).order_by("num_attachments").filter(id__in=distinct_articles)
This get actually evaluated as one database query in Django.
- Django form errors prints __all__
- What is the use of __table_args__ = {'extend_existing': True} in SQLAlchemy?
- Django does django have an automatic timestamp create/update field like cakephp?
Source:stackexchange.com