帮助控制页面流的向导。

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方法中引发的异常,向导知道该步骤无法保存并且需要重复

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java代理模式与重写   java如何对运行在executor服务内部的代码段进行单元测试,而不是等待线程。睡眠(时间)   java hadoop HDFS文件分发   无法在自定义适配器中解析java findViewById()   安卓如何在java中正确修剪字符串并将其拆分为3个单独的文本视图   大学Java练习有问题(字符串)   java是安卓 tabhost的活动生命周期   javascript当前请求不是多部分请求:Spring引导   spring中无映射实体的java连接   图像处理如何在Java中实现Hough圆   java如何在JVM启动选项中使用环境变量而不进行shell扩展   来自R的RJDBC包出现java ORA01033错误   Netty和ByteBuf之间的java差异。copy()和ByteBuf。重复()   带ms access的java Jdbcodbc桥不懂希腊字符?   swing Java结果集提前关闭   JavaOSGi包启动问题   递归使用JavaNIO递归地移动非空目录。2文件访问者和文件。walkFileTree(…)   java JButton未出现在其设置位置