帮助控制页面流的向导。
django-wizard的Python项目详细描述
django向导使用步骤类来控制页面流。
要创建向导,需要定义一个url路由,该路由将指向 查看并执行步骤参数,如下所示:
url(r'^(?P<step>[a-zA-Z]+)?$', views.my_view, name='new_wizard'),
然后,该视图必须实例化向导,将url名称和步骤列表传递给它。 然后应该调用向导的handle_request方法并将其与请求一起返回 以及当前步骤名(来自url):
def my_view(request, step): Wizard('new_wizard', [ ('StepOne', mysteps.StepOne), ('StepTwo', mysteps.StepTwo), ]) return wizard.handle_request(request, step)
向导还有一个默认的navigation-opts参数,可以在初始化中传递__ 导航选项是一个带有字符串键的字典,它将映射到 请求,值是一个int。它们告诉向导要往哪个方向走,走多远 在哪种情况下。
默认值为:
- wizard_save: 0
- wizard_continue: 1
- wizard_previous: -1
- wizard_next: 1
该视图还可以在向导上设置一些其他内容:
- set_redirect_args(*args, **kwargs)
- use this to tell the wizard what it needs to privode to django’s reverse function when doing redirects
- set_step_init_args(*args, **kwargs)
- use this to supply additional arguments to your step class __init__’s
- set_common_template_args(dict)
- use this to add stuff that will always be available in all of your wizard created templates
向导将触发以下信号:
- wizard.signals.wizard_pre_save
- wizard.signals.wizard_post_save
- wizard.signals.wizard_pre_display
- wizard.signals.wizard_post_display
- wizard.signals.wizard_pre_prereq
- wizard.signals.wizard_post_prereq
step类只是一个必须定义以下方法的对象
- 显示
- 只接受self作为参数并返回 传递到Django的模板引擎
- 保存
- 只接受self作为参数,不返回任何内容
- 模板
- 只接受self作为参数,并且必须返回要使用的模板对象 由向导呈现响应
- ie:return loader.get_template('some_template_file.html')
- 先决条件
- 只接受self作为参数,当页面流中发生错误时,可以引发wizard.prereqmissing
- 初始化接受可选的步进键、请求和消息
- 如果提供了步骤键,向导将重定向到该步骤
- 如果提供了请求和消息,它将把消息添加到django的消息传递框架中
- saveStepException是一个可以在save方法中引发的异常,向导知道该步骤无法保存并且需要重复