gpt4 book ai didi

django - 状态更改后 django-fsm 是否调用 save() 方法?

转载 作者:行者123 更新时间:2023-12-04 03:03:12 27 4
gpt4 key购买 nike

我正在使用 django_fsm 来管理我模型中的状态。我的模型看起来像:

from django.db import models,
from django_fsm import FSMField, transition


class MyModel(models.Model):
STATES = (
('pending', _('Pending')),
('active', _('Active'))
)
state = FSMField(choices=STATES, default='pending', protected=True)

@transition(field=state, source='pending', target='active')
def change_state(self):
pass

我应该将 self.save() 添加到 change_state 吗?会叫吗?

最佳答案

如果调用 change_state() 成功且未引发异常,状态字段将被更改,但不会写入数据库。

因此,要对数据库进行更改,您需要显式调用 obj.save()

def change_view(request, model_id):
obj = get_object__or_404(MyModel, pk=model_id)
obj.change_state()
obj.save()
return redirect('/')

关于django - 状态更改后 django-fsm 是否调用 save() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47133896/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com