我正在尝试在多选字段中缩进文本。
def __init__(self):
super(RegisterFull,self).__init__()
sectorList = Sector.objects.all()
sArray = []
for s in sectorList:
sArray.append((s.id," "+s.__unicode__()))
self.fields["subsector"].choices = sArray
我试过这个和
sArray.append((s.id," "+s.__unicode__()))
但是,我无法实现我想要的,因为“&”字符被&取代(当然)和空的空间被修剪。为何,何时创建html页面?
你能提出一个方法吗?
感谢。
答案 0 :(得分:1)
我建议使用级联样式表(CSS)来根据需要格式化字段。 HTML应该主要关注文档的布局,而CSS可以对格式进行微调。因此,在表单的窗口小部件中添加一个类;
例如,
class UserForm(forms.Form):
name = forms.CharField(widget = forms.TextInput(attrs={'class':'indented'}))
然后在CSS的顶部放置模板(或移动到单独的样式表)
<style type="text/css">
.indented {
text-indent: 20px;
}
</style>
如果你真的想要,你可以做一些更简单的事情:
class UserForm(forms.Form):
name = forms.CharField(widget = forms.TextInput(attrs={'style':'text-indent: 20px;'})).
编辑:让您的解决方案工作(使用
)
from django.utils.safestring import mark_safe
def __init__(self):
super(RegisterFull,self).__init__()
sectorList = Sector.objects.all()
sArray = []
for s in sectorList:
sArray.append((s.id,mark_safe(" "+s.__unicode__())))
self.fields["subsector"].choices = sArray