我正在使用 django-fsm 来实现状态机。代码看起来像
def user_ok_to_check_me( instance, user):
...
class Job( models.Model):
# ... many screenfulls of code
@transition( field=state, target=BOOKING, source=CHECKING, permission=user_ok_to_check_me)
def fail_checking(self, **kwargs):
...
它正在工作。在它所属的类之外有那个小实用函数会损害代码的可读性,所以我尝试了
class Job( models.Model):
# ... many screenfulls of code
@staticmethod
def user_ok_to_check_me( instance, user):
...
@transition( field=state, target=BOOKING, source=CHECKING, permission=user_ok_to_check_me)
def fail_checking(self, **kwargs):
这是行不通的。不知道user_ok_to_check_me
现在做什么,它的行为就像一个无操作函数总是返回 True 即使它所做的只是return False
为什么?有没有办法在类中声明这个小函数?(使用时间有点长 lambda instance, user:
)