У меня две модели
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?