Django,为模型的每个实例执行操作的最佳实践

时间:2012-08-22 00:36:54

标签: django performance models

这是我的问题。

我有一个类似的模型

class ActionQueue(models.Model):
    action_type = models.CharField(max_length=30, choices=ACTION_QUEQUE_TYPE)

    def execute(self):
        if self.action_type == 'exam':
                ... do something ...

执行该功能的最佳方式是什么"执行"对于ActionQueue的每个实例? 目前我正在使用for..in:

 for action in ActionQueue.objects.all():
     action.execute()

也许有更好的方法(在表现方面)来达到相同的效果。

谢谢

1 个答案:

答案 0 :(得分:1)

我认为你想要的是

actions = ActionQueue.objects.filter(action_type='exam')

然后

actions.update(...)

action_list = list(actions)
# do something with action_list
[do_something(action) for action in action_list]