在Django中,将CSS样式应用于forms.py(或等效的)中基于类的表单字段。
我的问题:在Django项目中是否无法以其他方式执行此操作?
即使答案是“不可能”,我也会接受答案。黑客和技巧也是可以接受的。说明性的例子会很棒。
P.S。这是一个Django表单的例子,我在基于类的表单中设置了样式:
class SampleForm(forms.Form):
description = forms.CharField(max_length=250)
def __init__(self,*args,**kwargs):
super(SampleForm, self).__init__(*args,**kwargs)
self.fields['description'].widget.attrs['class'] = 'btn bcg'
self.fields['description'].widget.attrs['style'] = 'background-color:#F8F8F8; width:98%; color: #1f8cad;'
self.fields['description'].widget.attrs['autocomplete'] = 'off'
答案 0 :(得分:1)
您可以使用template tags。
css.py
from django import template
register = template.Library()
@register.filter(name='css')
def css(field, css):
return field.as_widget(attrs={"style":css})
在你的模板中:
{% load css %}
{{ item.field|css: 'width: 100px' }}
结果可能是
<input id="id_field" name="field" style="width: 100px" type="text" />
如您所见,样式是您的变量(宽度:100px)。你也可以上课。