2017-08-30 97 views
1

在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' 

回答

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" /> 

正如你所看到的,在風格上是你的變量(寬度:100像素)。你也可以在課堂上做。