2016-10-04 4 views
1

Я использую библиотеку Django-hstore, и есть довольно виджет администратора. Компоненты магазина компьютера предмета табличного, что-то вроде этого:Django-hstore и admin widget: путь к unsort hstore data

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 о необходимых CPU и I имеет следующий встроенные данные администратора:

enter image description here

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

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 , который аналогичен тому, что мне нужно. Но, судя по всему, порядок хранения данных в структуре внутренней структуры.

ответ

0

согласно the hstore docs, hstore itself is not ordered:

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

 Смежные вопросы

  • Нет связанных вопросов^_^