python – 任何简单的方法在Django中做’疯狂的lib’样式表单字段?

我很好奇为我的
django形式制作一个“疯狂的lib”风格形式(参见
http://www.lukew.com/ff/entry.asp?1007).我可以通过迭代所有表单字段并手工布置文本来完成它,例如< li>应该有{{form.num_widgets}}小部件< / li>但是我不喜欢表单字段上的标签是如何未使用的,它是如何从表单定义文件和模板文件中部分传播的,以及它是如何我很难说.

在django有没有neater / all-in-one-way方式做疯狂的lib形式?我将窗口小部件的标签设置为“应该有%(某些)窗口小部件”的东西,它将用字段的渲染形式替换%(某些)s,以便我可以调用{{form. as_p}}它会自动运行吗?

最佳答案 这是自定义模板标记的一个很好的例子,如下所述:
https://docs.djangoproject.com/en/dev/howto/custom-template-tags/

您可以轻松地创建一个标记,该标记可以执行以下操作:

@register.simple_tag
def madlibfield(formfield):
   return formfield.label % formfield

然后,您可以在模板中使用它

{% madlibfield form.num_widgets %}

如果你想获得更好的输出(比如复制as_p功能),那么在标签中这样做是微不足道的.

点赞