как отсортировать поле многие ко многим в запросе Django - PullRequest
0 голосов
/ 17 октября 2018

У меня есть следующие модели:

class CompanyGroup(models.Model):  
name = models.CharField(max_length=64, unique=True)   

class Company(models.Model):
    name = models.CharField(max_length=255, db_index=True) 
    groups = models.ManyToManyField(CompanyGroup, related_name='groups', blank=True)

Я хочу показать последние компании, добавленные в группу.Я делаю это со следующим:

companies = Company.objects.filter(
        groups__name=group_name
        ).order_by('-groups__id')

Когда я печатаю sql, он упорядочивается по company_group_id вместо id companies_company_groups:

ORDER BY `companies_company_groups`.`companygroup_id` ASC

Я хочу заказать по:

ORDER BY `companies_company_groups`.`id` ASC

Как мне это сделать?

1 Ответ

0 голосов
/ 17 октября 2018

Вы можете получить доступ к сквозной модели следующим образом.

Company.groups.through.objects.all().order_by('-id')

Это запросит таблицу, сгенерированную отношением многие ко многим.Надеюсь, это поможет.

...