django crispy表单字段中的前置或追加图标
我在表单中有以下字段:django crispy表单字段中的前置或追加图标,django,django-forms,django-crispy-forms,Django,Django Forms,Django Crispy Forms,我在表单中有以下字段: <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 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
中添加图标作为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')
)
)
self.helper.layout=布局(
字段(前置文本('From',HTML(''),占位符('From'),
"到",,
“日期”,
钮扣工(
提交('Submit','Search',css_class='button white')
)
)
不会引发任何错误,但不会显示任何图标。self.helper.layout=layout(
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")
Div(HTML(“”)
'''),
class=“表格组”)
使用字形图标的替代方法是使用类似的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符号中添加”和#xFE0E;
,以强制其不呈现为表情符号(如建议的那样),似乎不起作用。只需使用django的mark#u安全帮助程序,如下所示:
来自django.utils.safestring导入标记\u safe
字段(前置文本('From',
mark_安全(“”)),
占位符='From')
这适用于占位符:
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"))
),
self.helper=FormHelper()
self.helper.form_show_labels=False
self.helper.layout=布局(
场(
PrependedText('电子邮件',
安全标记(“”),
占位符=(输入电子邮件),自动聚焦=)
),
场(
PrependedText('名称',
安全标记(“”),
占位符=(输入全名)
),
谢谢你的回答@NeErAj。这看起来像是将该字段的完整html硬编码为crispy forms,这对我来说没有多大意义。难道没有更优雅的方式只需要修改图标本身的信息吗?crispy form不适合自定义表单设计。你必须使用html硬编码进行设计n形式。
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"))
),