I am using django-parler (a derivative of django-hvad) for translations. In admin when displaying Foreignkey fields with manytomany relationship, django runs a single query for each:
So when there are 300 services there would be as many queries.
I think the prefetch_related on get_queryset doesn't apply to mantomany
filters/lists, correct me if I am wrong:
def get_queryset(self, request):
return super(DoctorAdmin, self).get_queryset(request).prefetch_related('translations', 'services__translations')
has no effect on number of queries. Enabling caching on parler (as the author suggested here) also does not help since the same queries are not repeated but each item on those filters is called in a query for translated items (IDs are different each time). So, what I am looking for is a select_related/prefetch_related on inner filters. I will also review your apps meanwhile, in case you have solved such problem already.