как запросить несколько столбцов в Django - PullRequest
1 голос
/ 01 декабря 2011

У меня проблема с отображением определенных столбцов в моей модели в django ... Я читал в документации о функции набора запросов django.мой вопрос в том, что в django также возможно выполнить так же, как этот запрос?

select name, age, address from person;

может кто-нибудь может дать мне идею, я также попробую это такесть ошибка в параметре имени, возраста и адреса ...

спасибо ...

Ответы [ 2 ]

10 голосов
/ 01 декабря 2011

Если вы хотите, чтобы только некоторые столбцы использовали only:

Mymodel.objects.only('name', 'age', 'address')

Если вы не хотите , некоторые столбцы используют defer:

Mymodel.objects.defer('some_big_field')

Вы все еще можете получить доступ к полю, к которому вы не обращались, но это обойдется вам в один удар по БД режима.

Также вы можете использовать values и values_list, но вместо экземпляров модели они возвращают список диктов и список списков соответственно.

4 голосов
/ 01 декабря 2011

Есть несколько разных способов. Обычно django переносит данные в экземпляры модели, что является частью точки orm. Вы имеете дело с объектами, а Django работает с базой данных. так

for person in MyMydel.objects.all():
    do_something_with(person.name)

сказав это, если вы хотите только определенные атрибуты, например для производительности вы можете использовать значения

MyMode.objects.values('name', 'age', 'address')

, который возвращает список диктов с этими значениями

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...