Преобразование объекта в Queryset - PullRequest
0 голосов
/ 22 октября 2018

У меня есть две функции

def xyz(obj):
   obj_queryset = Sample.objects.filter(id=obj.id)
   callfunction(obj_queryset)

def callfunction(obj_queryset):
   for obj in obj_queryset:
       obj.start_date = datetime.date.today()
       obj.end_date = datetime.date.today()
       obj.save()

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

Есть ли способ превратить obj в набор запросов без выполнения запроса к базе данных.

1 Ответ

0 голосов
/ 22 октября 2018

callfunction не использует ничего конкретного из набора запросов.Он обрабатывает свой аргумент как последовательность aka iterable .На практике это означает, что все, что вы можете использовать в цикле for, может быть передано в функцию.

Чтобы обработать отдельный объект с помощью этой функции, вы можете передать последовательность с этим объектом в вашу функцию, и она можетбыть любой последовательностью, которая является итеративной (необязательно набором запросов), например, это может быть список:

callfunction([obj])

Это абсолютно допустимо, и это обычная идиома Python.

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