Запрос Django с отличным и порядковым_би

У меня две модели

class Employer(models.Model):
     name = models.CharField(max_length=300, blank=False)
     id = models.IntegerField()
     status = models.IntegerField()
     eminence = models.IntegerField(null=False,default=4)

class JobTitle(models.Model)
     name = models.CharField(max_length=300, blank=False)
     employer = models.ForeignKey(Employer,unique=False,null=True)
     activatedate = models.DateTimeField(default=datetime.datetime.now)

Мне нужны все работодатели в том порядке, чьи должности активированы последними.

Employer.objects.filter(status=1).order_by('eminence','-jobtitle__activatedate')

Это query дает мне то, что я хочу, но он возвращает повторяющихся работодателей, если у работодателя более одного названия вакансии.

Я бы использовал independent () , но в документах Django я обнаружил, что

* Любые поля, используемые в вызове order_by (), включаются в столбцы SQL SELECT. Иногда это может привести к неожиданным результатам при использовании вместе с отличным (). Если вы упорядочиваете по полям из связанной модели, эти поля будут добавлены к выбранным столбцам, и в противном случае повторяющиеся строки могут выглядеть разными. Поскольку дополнительные столбцы не появляются в возвращаемых результатах (они нужны только для поддержки упорядочения), иногда кажется, что возвращаются неотличимые результаты. *

Хотя они объяснили мою проблему, решение не указано.

Могли бы предложить мне сгруппировать по списку работодателей, не нарушая стабильности API?

16
задан brsbilgic 11 July 2011 в 10:04
поделиться