Я только что обновил проект с Django 1.11.20 до Django 2.2.1 и заметил, что порядок в моем list_filter: s был немного случайным.
Был ли удален упорядочивающий элемент ordering для Модели в более поздних (чем 1.11.20) версиях Django?
Это моя модель:
class Customer(models.Model):
name = CharField(max_length=255, null=False, blank=False)
organization_number = CharField(max_length=64, unique=True, null=True, blank=True)
disable_auto_creation_of_invoices = BooleanField(default=False)
class Meta:
ordering = ["name"]
def __str__(self):
return self.name
Я посмотрел на запросы, и это запрос для получения клиентов в фильтре RelatedOnlyFieldListFilter в Django 2.2.1:
SELECT
`core_customer`.`id`, `core_customer`.`name`,
`core_customer`.`organization_number`,
`core_customer`.`disable_auto_creation_of_invoices`
FROM `core_customer` WHERE `core_customer`.`id` IN (SELECT
DISTINCT U0.`customer_id`
FROM `time_report_timereportentry` U0)
А это запрос в Django 1.11.20:
SELECT
`core_customer`.`id`, `core_customer`.`name`,
`core_customer`.`organization_number`,
`core_customer`.`disable_auto_creation_of_invoices`
FROM `core_customer` WHERE `core_customer`.`id` IN (SELECT
DISTINCT U0.`customer_id` AS Col1
FROM `time_report_timereportentry` U0) ORDER BY `core_customer`.`name` ASC
Как вы можете видеть, в Django 1.11.20 есть ORDER BY, но в Django 2.2.1 его нет.
Есть ли у вас какие-либо идеи о том, как отсортировать объекты по свойству ordering?
И похоже, что обычный list_filter (без RelatedOnlyFieldListFilter) также не упорядочивает по свойству ordering.
Спасибо за любую помощь, чтобы разобраться (!) В этом.