帮助控制页面流的向导。

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从XML文本中提取数据   使用JAVA在“Bixolon热敏打印机”上打印,“未找到页面!”错误   Java8流:每个流   java如何使用JRootPane修改JFrame?   如何在java中获取出错的行号?   为什么JavaCompiler在实例化Java类时速度很慢?   Java Swing计时器类中可能存在的错误   从抽象类返回Java上的泛型对象   java流式传输来自JAXRS响应的pdf文件:url的“401:Unauthorized”   java呈现线性布局似乎很慢   如何使用java将具有重叠的多个分割图像合并回原始图像?   java使用DatagramPacket从一个客户端向另一个客户端发送数据   linux如何使用java代码中运行的Service statusall | grep获取结果我的代码没有给出结果?   使用Java ZipFile类解压缩ZIP文件   java Elasticsearch集成测试和springtest不能很好地协同工作AccessControlException   一种增强java集合的区间树生成算法   在JDK之外使用附加API的兼容性