【发布时间】:2012-09-13 01:14:28
【问题描述】:
有没有办法创建一个生成 twitter 引导按钮的小部件?我需要在表单中间放置一些按钮。 (或不是输入的html)
尝试如下:
class BootstrapButtonWidget(forms.Widget):
def render(self, value, attrs=None):
return '<a href="#" class="btn btn-danger delete">%s</a>' % (value,)
class BootstrapButton(forms.Field):
def __init__(self, value, *args, **kwargs):
if not kwargs:
kwargs = {}
kwargs["widget"] = BootstrapButtonWidget
super(BootstrapButton, self).__init__(*args, **kwargs)
def clean(self, value):
return value
但我无法传递值。他总是花一个“价值”。
我需要像这样渲染一个按钮:
<button type="button" class="btn %s">%s</button> % (btn_type, btn_text)
渲染:
<button type="button" class="btn btn-primary">Delete this</button>
【问题讨论】:
-
为了满足这一点,将按钮呈现为 django
Form的一部分似乎不是一个好主意。Form字段的想法是它们采用一个值,它们必须对其进行验证,如果有效,则将其规范化为一致的格式。然而,按钮或多或少是一个不变的概念。他们确实将必须验证的值作为输入。换句话说,这可能会解决您在表单中间呈现按钮的问题,但从概念上讲,这似乎不是一个干净的解决方案。 -
不确定脆皮表格是否可以做到这一点,但可能对您有用:github.com/maraujop/django-crispy-forms
标签: python django twitter-bootstrap django-widget