我希望在以下流程完成时更新模型字段中的状态。
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,这是正确的方法吗?
答案 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可能是更好的方式来实现这个目标