2015-03-29 3 views
0

Я представляю django. Я создал модель с двумя полями: Clientes и Equipos.Как получить информацию django db

Я хочу напечатать, но с моим собственным форматом, поэтому я хотел бы иметь список или лучше для него.

Но я не знаю, что такое "example = models.object.values ​​()" do. Я не знаю, является ли пример списком, словарем ...

Я пробовал с models.object.get(), но он не работает.

спасибо.

ответ

0
example = models.object.values() 

example будет своего рода итератор dicts, где ключи являются имена полей из модели. Чтобы сделать это список dicts просто сделать:

example = list(models.object.values()) 

Так example будет выглядеть примерно так:

[ 
    {'id': 1, 'Clientes': 'some clientes', 'Equipos': 'some equipos'}, 
    {'id': 2, 'Clientes': 'anoter clientes', 'Equipos': 'another equipos'} 
] 
+0

Я понимаю, спасибо , но что произойдет, если у меня будет более 2 полей? Я имею в виду ... ' example = models.object.values ​​(Clientes, Equipos, AnotherField, AnotherField) ' Какой ключ в этом случае? У меня есть еще одна проблема. Я получил его, но когда я его распечатаю, перед моим ключом есть дополнительный символ «u». Посмотрите, [(u'test22 ', 4), (u'test', 4)] , и это должно быть «test22», 4 ... – dmanso

+0

Конечно, дополнительные ключи будут добавлены в dicts. '{..., 'AnotherField': 'some'}'. И я забыл упомянуть, что поле id также будет в dict. – catavaran

+0

Необязательный символ 'u' перед строкой означает, что строка находится в юникоде: https://docs.python.org/2/howto/unicode.html#unicode-literals-in-python-source-code – catavaran

1

Acutally, пример является экземпляром django.db.models.query.ValuesQuerySet, не просто список, это QuerySet

Из-за example это набор запросов, вы можете использовать метод набора запросов, делать все, что хотите. Документ django queryset полезен.

вы можете пройти example переменную так:

for item in example: 
    do_what_you_want(item) 

Как вы объявляете в вас модели, ваш пример может нравится:

example = [ 
      {'Clients':'clients data','Equipos':'equipos data'}, 
      {'Clients':'clients data','Equipos':'equipos data'} 
      ] 

Я не рекомендую вам превратить ваш example в list, если вы это сделаете, вы не сможете использовать мощный метод набора запросов django. Метод запроса Django более мощный, чем собственный список python.

+0

ну, я понимаю. Итак, если я хочу распечатать мой запрос django do_what_you_want должен быть напечатан непосредственно. – dmanso

+0

@ dmanso Конечно, THX в любом случае. – tolerious

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