我有以下资料:
jobs = Task.objects.filter(created__month=month, created__year=year)
for job in jobs:
try:
_ = User.all_objects.filter(user=job.creator_id, customer=job.customer_id).reverse()[0]
except IndexError:
# Remove this job
job.delete() # This is deleting object from the Database which I don't want to happen.
# I'm looking for a method such as jobs.remove(job)
从上面开始,我不知道是否可以在第一个查询中使用“exclude”。这就是为什么我想知道是否有办法从Queryset中删除“job”。
好吧,你可以一次性完成
delete
。先收集你需要的所有工作ID:注:我不太明白为什么要有
reverse()[0]
,但这与检查queryset是否有值基本相同。reverse
不是免费的,而且会损害您的性能,与切片和切割相同。使用exists()
会更好。一个
QuerySet
的主要吸引力是它很懒,但是不管怎样,你都在评估每件事,所以我认为如果你只是把它列为一个有列表理解力的列表,你不会失去任何东西。相关问题 更多 >
编程相关推荐