Django-hstore и административный виджет: способ отменить сортировку данных hstore

Я использую библиотеку Django-hstore, и там есть красивый виджет администратора. В предметной таблице хранятся компоненты компьютера, что-то вроде этого:

class Component(models.Model):

    name = models.CharField(max_length=64)
    purchase_date = models.DateField(blank=True, null=True)
    product_page = models.URLField(blank=True, help_text='url to pruduct page')
    <...>
    data = hstore.DictionaryField(blank=True)

    def load_cpu_data(self):
        if self.product_page:
            info = cpu_data(self.product_page)
            if info:  # info is a SortedDict with proper order
                for key, value in info.items():
                    self.data[key] = value
                self.save()

Далее я получаю данные от cpu-world.com о необходимом процессоре и у меня есть следующие встроенные данные в админке:

Выглядит отлично, но сортировка в алфавитном порядке вместо логического, в порядке загрузки данных в базу данных в load_cpu_data модельный метод. Пример правильного порядка, как на CPU-World:

Family
Model number
Frequency
Socket
Microarchitecture
Processor core
Manufacturing process
Data width
The number of CPU cores
The number of threads
Integrated graphics
Thermal Design Power

Есть ли техника, прием или что-то, что может помочь мне показать данные в нужной последовательности? Например, я нашел Python OrderedDict тип данных, который похож на то, что мне нужно. Но, видимо, внутренняя структура беспорядка данных порядка.

1 ответ

По данным hstore docs, сам hstore не заказан:

Порядок пар не имеет значения (и не может быть воспроизведен на выходе). Пробелы между парами или вокруг знака => игнорируются. Ключи и значения в двойных кавычках, включая пробелы, запятые, =s или>s. Чтобы включить двойную кавычку или обратную косую черту в ключ или значение, экранируйте их обратной косой чертой.

Другие вопросы по тегам