У меня две модели
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')
Этот запрос дает мне то, что я хочу, но возвращает повторных работодателей, если у работодателя более одного названия работы.
Я бы использовал distinct()
, но в документах Django я обнаружил, что
* Любые поля, используемые в вызове order_by (), включены в столбцы SQL SELECT. Иногда это может привести к неожиданным результатам при использовании в сочетании с different (). Если вы упорядочите по полям из связанной модели, эти поля будут добавлены в выбранные столбцы, и в противном случае дублирующиеся строки могут казаться отличными. Поскольку дополнительные столбцы не отображаются в возвращаемых результатах (они предназначены только для поддержки упорядочения), иногда кажется, что возвращаются нечеткие результаты. *
Хотя они объяснили мою проблему, решение не указано.
Не могли бы вы подсказать, как я могу группировать по списку работодателей, не нарушая стабильность API?