我很好奇为我的django形式制作一个“疯狂的lib”风格形式(参见http://www.lukew.com/ff/entry.asp?1007)。我可以通过迭代所有表单字段并手工布置文本来完成它,例如<li>There should be {{ form.num_widgets }} widgets</li>
但是我不喜欢表单字段上的标签是如何未使用的,它是如何从表单定义文件和模板文件中部分传播的,以及它是如何难以实现的。
在django中有没有neater / all-in-one-way方式做疯狂的lib表格?我将窗口小部件的label
设置为"There should be %(something)s widgets"
的内容,它会将%(something)s
替换为字段的呈现形式,以便我可以调用{{form.as_p}它会自动运作吗?
答案 0 :(得分:2)
这是自定义模板代码的一个很好的案例,如下所示: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
功能),那么在标签中这样做是微不足道的。