【问题标题】:Any easy way to do 'mad lib' style form fields in Django?在 Django 中执行“mad lib”样式表单字段的任何简单方法?
【发布时间】:2011-07-12 15:36:52
【问题描述】:

我很想为我的 django 表单制作一个“mad lib”样式的表单(参见http://www.lukew.com/ff/entry.asp?1007)。我可以通过遍历所有表单字段并手动布置文本来做到这一点,例如<li>There should be {{ form.num_widgets }} widgets</li>,但是我不喜欢表单字段上的标签如何未被使用,它如何从表单定义文件和模板文件中部分传播,以及如何很难做到这一点。

在 django 中是否有任何更简洁/一站式的方式来执行疯狂的 lib 表单?我将小部件的label 设置为"There should be %(something)s widgets",它会将%(something)s 替换为字段的呈现形式,这样我就可以调用{{ form.as_p }} 并且它会工作自动?

【问题讨论】:

  • +1 有趣的阅读。

标签: python django django-forms


【解决方案1】:

这是自定义模板标签的一个很好的例子,如下所述: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 功能),在标签中这样做很简单。

【讨论】:

    猜你喜欢
    • 2016-06-25
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多