Почему нет метода append () для Django ValuesListQuerySet? - PullRequest
2 голосов
/ 03 февраля 2011

Есть ли веская причина, по которой нет метода добавления в Django ValuesListQueryset?

Если я хочу добавить элемент, есть ли лучший способ, чем сначала преобразовать в список?

1 Ответ

3 голосов
/ 03 февраля 2011

Из моего комментария:

наборы запросов django не являются списками ....... хотя они все еще поддерживают некоторые операции со списками

Также, как прокомментировала книга программистов ..... наборы запросов django ленивы т.е. запросы выполняются при первом обращении к набору запросов.Допустим, вы создали цепочку длинных фильтров для получения набора запросов, даже тогда база данных будет поражена только один раз, во время доступа к значению набора запросов.Теперь предположим, что у вас есть набор запросов:

sample_set = SampleModel.objects.filter(sample_field='sample_value').filter(another_sample_field='another_sample_value') 

Возвращенный набор запросов будет иметь соответствующий одиночный SQL-запрос, такой как

SELECT something FROM sometable 
WHERE sample_field='sample_value' 
AND another_sample_field='another_sample_value'

Нет способа достичь чего-то вроде sample_set.append(sample_object) как sample_set представляет оператор SQL.

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