六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 137|回复: 0

给django的FormWizard来点修改,使其支持上一步,下一步

[复制链接]

升级  21.33%

20

主题

20

主题

20

主题

秀才

Rank: 2

积分
82
 楼主| 发表于 2013-2-7 20:20:23 | 显示全部楼层 |阅读模式
用过django的FormWizard的人肯定感觉到它的方便灵活,但是没有一个上一步下一步的功能,有点遗憾
 
还好django是开源的,想增强一下这个功能,自己小修改一下源码就可以了(其实就增加了3行代码),用法也没啥区别,原来继承FormWizard改成NewFormWizard,附件里面有这个源文件(基于django1.0.2 的版本)
 
 
#from django.contrib.formtools.wizard import FormWizard#改为from newwizard import NewFormWizardclass PublisherWizard(NewFormWizard):    def done(self, request, form_list):        return render_to_response('books/wizard_done.html', {            'form_data': [form.cleaned_data for form in form_list],        })    def get_template(self, step):        return 'books/wizard.html' 
当然相应的wizard.html模板得有个上一步 下一步的button
 
{% extends "books/base.html" %}{% block content %}<p>Step {{ step }} of {{ step_count }}</p><form action="." method="post"><table>{{ form.as_table }}</table><input type="hidden" name="{{ step_field }}" value="{{ step0 }}" />{{ previous_fields|safe}}<input type="hidden" id="clicked" type="text" name="clicked" value="" /><input type="submit"  value="back" {% ifequal step 1 %}disabled="disabled"{% endifequal %}><input type="submit"  value="next" {% ifequal step step_count %}disabled="disabled"{% endifequal %}><input type="submit" value="submit" {% ifequal step 1 %}disabled="disabled"{% endifequal %}></form>{% endblock %}  
 
效果图:
 


 
 
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表