0

以下のプロセスが完了したときに、モデルフィールドのステータスを更新する方法が必要です。

views.py

 #If we had a POST then get the request post values.
    if request.method == 'POST':
        batches = Batch.objects.for_user_pending(request.user)
        for batch in batches:
            ProcessRequests.delay(batch)

だから私はビューでこのようなことをすることを考えています...

batch.complete_update()

私の問題は、私のモデルでは、方法がわからないため、少し助けが必要なことです。

これは私がこれまでにしたことです...

私が作成しました

STATUSES = (
    ('Pending', 'Pending'),
    ('Complete', 'Complete'),
    ('Failed', 'Failed'),
    ('Cancelled', 'Cancelled'),
)

次に、と呼ばれるモデル関数def complete_update(self):がありますが、その中のフィールドを上記のステータスで更新して、モデル内からすべてを保存する方法がわかりません。

前もって感謝します。

PS、これはそれについて行く正しい方法ですか?

4

1 に答える 1

1
class Batch(model.Model):
    STATUSES_CHOICES = (
        ('Pending', 'Pending'),
        ('Complete', 'Complete'),
        ('Failed', 'Failed'),
        ('Cancelled', 'Cancelled'),
    )
    status = models.CharField(max_length=25, choices=STATUS_CHOICES)
    # The rest of the fields..

    def complete_update(self):
        self.status = 'Complete'
        self.save()

それはそれをする必要があります

編集:karthikrが述べたように、post_saveはこれを行うためのより良い方法かもしれません

于 2013-03-22T14:30:47.633 に答える