0

これが私の質問です。

そんなモデルいるよ

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 の各インスタンスに対して関数「execute」を実行する最良の方法は何ですか? 現在、私は for..in を使用しています:

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

たぶん、同じ結果を達成するための (パフォーマンスの観点から) より良い方法がある..

ありがとうございました

4

1 に答える 1

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]
于 2012-08-22T00:45:43.890 に答える