Django从模型中更新状态

时间:2013-03-22 14:24:42

标签: django django-models

我希望在以下流程完成时更新模型字段中的状态。

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,这是正确的方法吗?

1 个答案:

答案 0 :(得分: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可能是更好的方式来实现这个目标