我的应用看起来像:
class App extends Component {
render() {
<Router>
<div>
<Route exact path='/login' component={Login} />
<Route exact path='/game' component={GameContainer} />
<Route exact path='/chat' component={ChatContainer} />
<Route exact path='/info' component={InfoContainer} />
</div>
</Router>
}
Run Code Online (Sandbox Code Playgroud)
如果用户访问/ game下的页面并且未登录,我想将它们重定向到登录页面.
如何在所有路由器中以优雅的方式做到这一点?
我正在使用 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
Run Code Online (Sandbox Code Playgroud)
我应该将 self.save() 添加到 change_state 吗?会叫吗?