我在表单中有以下字段:
<div class="form-group ">
<div class="input-group">
<input class="form-control" id="To" name="To" placeholder="To" type="text"/>
<i class="glyphicon glyphicon-map-marker form-control-feedback"></i>
</div>
</div>
看起来像
我正在尝试使用crispy-forms
获得类似的结果。
我试过
self.helper.layout = Layout(
Fieldset(
'Title',
PrependedText(
'From',
<i class="glyphicon glyphicon-map-marker"></i>
),
'To',
'Date',
ButtonHolder(
Submit('submit', 'Search', css_class='button white')
)
)
)
但我得到SyntaxError: invalid syntax
。
是否可以在crispy-forms
中添加图标作为PrependedText?
如果没有,有其他选择吗?
(编辑)
尝试
self.helper.layout = Layout(
Field(PrependedText('From', HTML('<span class="glyphicon glyphicon-map-marker"></span>')), placeholder='From'),
'To',
'Date',
ButtonHolder(
Submit('submit', 'Search', css_class='button white')
)
)
不会引发任何错误,但不会显示任何图标。
答案 0 :(得分:3)
self.helper.layout = Layout(
Div(HTML('''
<div class="input-group">
<input class="form-control" id="To" name="To" placeholder="To" type="text"/>
<i class="glyphicon glyphicon-map-marker form-control-feedback"></i>
</div>'''),
class="form-group")
答案 1 :(得分:1)
使用glyphicons的替代方法是使用类似的unicode符号:
self.helper.layout = Layout(
Field(PrependedText('From', '📌'), placeholder='From'),
Field(PrependedText('To', '📌'), placeholder='To'),
Field(PrependedText('Date', '📅'), placeholder='Date'),
FormActions(ButtonHolder(Submit('submit', 'Search', css_class='btn btn-primary')))
)
问题在于,由于某种原因,砂金持有人无法正常工作......
另请注意,将'︎'
附加到unicode符号以强制它未按照建议here呈现给emojis,似乎不起作用。
答案 2 :(得分:1)
只需使用django的mark_safe帮助器:
from django.utils.safestring import mark_safe
Field(PrependedText('From',
mark_safe('<span class="glyphicon glyphicon-map-marker"></span>')),
placeholder='From')
答案 3 :(得分:1)
这适用于占位符:
self.helper = FormHelper()
self.helper.form_show_labels = False
self.helper.layout = Layout(
Field(
PrependedText('email',
mark_safe('<span class="glyphicon glyphicon-envelope"></span>'),
placeholder=_("Enter Email"), autofocus="")
),
Field(
PrependedText('name',
mark_safe('<span class="glyphicon glyphicon-user"></span>'),
placeholder=_("Enter Full Name"))
),