有一个非常好的例子,说明如何在react-router repo的examples文件夹中在现场制作面包屑.但我想知道如何用动态路线制作面包屑.
假设我们有这个配置:
ReactDOM.render((
<Router history={browserHistory}>
<Route path="/projects" component={ProjectsApp}>
<IndexRoute component={ProjectsDashboard} />
<Route path=":projectId" component={ProjectBoard}>
<Route path=":taskId" component={ProjectTaskBoard}>
</Route>
</Route>
</Router>
), document.getElementById('app'));
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情:
项目(链接到'/ projects') - > MyAwesomeProject(链接到'/ projects/11'.从某处获取的标题(来自store来自storeParams或通过其他方式的id) - > MyTask(链接到'/ projects/11/999' )
我怎样才能达到这个效果?有没有最佳做法?谢谢.
假设我们有这三个模型.
class Item(BaseModel):
title = CharField()
class User(BaseModel):
name = CharField()
class UserAnswer(BaseModel):
user = ForeignKeyField(User, 'user_answers')
item = ForeignKeyField(Item, 'user_answers_items')
answer = ForeignKeyField(Item, 'user_answers')
Run Code Online (Sandbox Code Playgroud)
我想获得当前用户Items没有相关UserAnswer记录的所有内容.在SQL中它将是这样的:
select * from item i
left join useranswer ua on ua.item_id=i.id and ua.user_id=1
where ua.id is null;
Run Code Online (Sandbox Code Playgroud)
是否可以使用peewee语法在两个字段上使用约束进行左外连接?如果我能以这种方式做到这将是很酷的:
Item.select().join(UserAnswer, JOIN_LEFT_OUTER, on=['__my_constraints_here__']).where(
(UserAnswer.id.is_null(True))
)
Run Code Online (Sandbox Code Playgroud) 假设我有一些基于一个抽象任务的Celery任务。
class BaseTask(Task):
abstract = True
def on_failure(self, exc, task_id, args, kwargs, einfo):
logging.info('Task failed')
def on_success(self, retval, task_id, args, kwargs):
logging.info('Task success')
# NO SUCH METHOD IN TASK
# def on_start(self):
# do_something_on_every_task_start()
@app.task(base=BaseTask)
def task1(x):
print x
@app.task(base=BaseTask)
def task2(y):
print y
Run Code Online (Sandbox Code Playgroud)
我想在每个任务执行开始时做一些事情。有没有可能实现这一结果?谢谢。