这么容易处理表单集。

django-superform的Python项目详细描述


django超型

^{str 1}更少的吸吮表单集。

Build StatusDocumentation StatusPackage VersionGitter Chat, discuss django-superform with others

如果您想在每个 其他。在SuperForm中使用表单集和嵌套表单。这个 SuperForm会照顾它的孩子!

注意

这个包裹还在快速发展中。一些api可能在 未来和它还没有完成的功能。文件还没有 也可以完成,但记录的所有内容都是最新的 应按规定工作。如果没有,请提交一个错误。 所有不向后兼容的更改和新功能都将记录在案 在changelog中。

假设您希望有一个显示和验证窗体和窗体集的视图。 假设您有一个注册表单,用户可以在其中输入多封电子邮件 地址。django为这个用例提供formsets,但是在 风景通常很麻烦。您需要同时验证表单和 手动设置窗体,不能使用django的泛型FormView。所以来了 django superform生效。

这里我们有一个用例的例子。让我们看看 forms.py

fromdjangoimportformsfromdjango_superformimportSuperModelForm,InlineFormSetFieldfrommyapp.modelsimportAccount,EmailclassEmailForm(forms.ModelForm):classMeta:model=Emailfields=('account','email',)EmailFormSet=modelformset_factory(EmailForm)classSignupForm(SuperModelForm):username=forms.CharField()# The model `Email` has a ForeignKey called `user` to `Account`.emails=InlineFormSetField(formset_class=EmailFormSet)classMeta:model=Accountfields=('username',)

因此,我们将EmailFormSet作为字段直接分配给SignupForm。 这就是它的归属!好的,我如何在 查看?看一看:

defpost_form(request):ifrequest.method=='POST':form=PostForm(request.POST)ifform.is_valid():account=form.save()returnHttpResponseRedirect('/success/')else:form=PostForm()returnrender_to_response('post_form.html',{'form',},context_instance=RequestContext(request))

不,我们不会做任何不同的事情 FormSetSignupForm上。这样你就可以自由地实现 在它所属的地方使用它自己的形式的逻辑,并使用通用视图,如 CreateView您可以将它们与简单的表单一起使用。想举个例子吗?

fromdjango.views.genericimportCreateViewfrommyapp.modelsimportAccountfrommyapp.formsimportSignupFormclassSignupView(CreateView):model=Accountform_class=SignupFormurlpatterns=patterns('',url('^signup/$',SignupView.as_view()),)

它只是起作用。

文件

完整的文档可在阅读文档时获得:https://django-superform.readthedocs.org/


由Gregor Müllegger与Team23合作开发。

更改日志

0.3.1

  • SuperForm.composite_fieldsdict不再在窗体之间共享 实例。每个新的表单实例都得到一个深度副本。所以改变了 不会泄漏到同一窗体类的其他实例中。

0.3.0

  • #11:修复CompositeBoundField以允许直接访问嵌套表单 字段通过form['nested_form']['field']
  • 支持django在嵌套表单中处理媒体。见#3#5
  • 不要在没有嵌套的任何错误的情况下填充errorlist表示 窗体设置为超级窗体的错误。有关详细信息,请参见#5

0.2.0

  • Django 1.8支持。
  • 给定给超级表单的__init__方法的初始值将得到 传递到嵌套窗体。
  • 在^{tt15}中使用的modelforms的empty_permitted参数$ 根据给定给字段的required属性设置。

0.1.0

  • 首次发布,提供概念证明。

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

推荐PyPI第三方库


热门话题
java文件分块,获取长度字节   java嵌入式Tomcat不执行jsf页面   java我的数据库中有2个实体,但hibernate返回其中6个。   java如何基于逗号拆分字符串   java取消已经运行的CompletableFutures的预期模式是什么   java如何在informix中从另一个数据库复制表ddl和数据   为什么图片是黑色的?   java根据字符串数组中的单词筛选列表   Java8的集合。平行流有效吗?   Kotlin中的java静态内部类   java如何在GUI中生成一列字符串   javafx如何正确使用高对比度主题?   带空格的javascript Httpurlconnection参数   java如何设置GridBagLayout的约束   java如何在一个线程可能尚未初始化时关闭另一个线程   java将简单时间格式转换为特殊时间格式(hhmmt)   安卓/java阵列重复过滤器的问题   java在队列的链接实现下,入队和出队是如何工作的   java更新sql外键约束