Объединить набор запросов с вновь созданным объектом - PullRequest
0 голосов
/ 07 декабря 2018

Существует новый объект (еще не сохранен):

obj = MyObject()
q = MyObject.objects.all()

Есть ли способ объединить obj и q?

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Вероятно, вы можете объединить это с chain

Здесь я попробовал это в оболочке django:

In [1]: from itertools import chain
    ...: comment = Comment()
    ...: all_comments = Comment.objects.all()  # there's 1 comment in my db: <QuerySet [<Comment: Comment object>]>
    ...: combined = list(chain([comment], all_comments))
    ...: print(combined)
[<Comment: Comment object>, <Comment: Comment object>]
0 голосов
/ 07 декабря 2018

Нельзя объединить, если obj не сохранен (при условии, что вы хотите использовать queryset здесь).здесь q ленивый запрос. Когда он оценивается , он возвращает все объекты, включая obj, если он был создан до оценки.

Но Вы можете добавить его в список объектов после оценки q (если вы не хотите сохранять obj, несмотря ни на что).Как это:

q_list = list(q)
q_list.append(obj)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...