2017-08-30 3 views
1

Djangoでは、form.py(または同等のもの)のクラスベースのフォームフィールドにCSSスタイリングを適用します。クラスベースのフォームフィールドのスタイリングの別の方法

私の質問: Djangoプロジェクトの中で他の方法で行うことは不可能ですか?


回答が「不可能」であっても、私はその回答を受け入れます。ハックやトリックも受け入れられます。例示的な例は素晴らしいだろう。

p.s.

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を使用することができます:ここで私はクラスベースの形でスタイリングしましたDjangoのフォームの例です。あなたのテンプレートで

from django import template 
register = template.Library() 

@register.filter(name='css') 
def css(field, css): 
    return field.as_widget(attrs={"style":css}) 

css.py:100ピクセル:

{% load css %} 
{{ item.field|css: 'width: 100px' }} 

あなたが見ることができるように結果が

<input id="id_field" name="field" style="width: 100px" type="text" /> 

可能性があり、スタイルであなたの変数(幅)。あなたはクラスでそれを行うこともできます。

関連する問題