我有两个功能
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转换为查询集。
答案 0 :(得分:0)
callfunction
不使用queryset中的任何特定内容。它将其自变量视为序列iterable。实际上,这意味着您可以在for循环中使用的任何内容都可以传递给该函数。
为了通过此函数处理单个对象,您可以将带有该对象的序列传递给函数,并且它可以是可迭代的任何序列(不一定是queryset),例如,它可以是列表:
callfunction([obj])
这是绝对有效的,并且是通常的python习惯用法。