2014-11-13 2 views
1

Django의 forms.Form 클래스를 사용하여 생성하는 HTML 페이지에 양식이 있습니다. 부트 스트랩을 사용하여 생성 된 HTML 컨트롤에 스타일을 적용하고 싶습니다. 예를 들어, 특정 클래스 속성이있는 경우 부트 스트랩이 양식 컨트롤에 스타일을 적용한다는 것을 알았습니다. form-control. form.as_p 지시문을 사용하여 템플릿에 양식 객체를 포함합니다. html 페이지에 명시적인 HTML 컨트롤이 없기 때문에 클래스 속성을 포함시켜 스타일을 적용하는 방법을 모르겠습니다. 부트 스트랩 스타일을 양식 컨트롤에 적용 할 수 있도록이 문제를 해결할 수 있도록 도와 주시겠습니까?부트 스트랩을 사용하여 django.forms 컨트롤에 스타일 추가하기

감사합니다. Rakesh.

답변

0

위젯으로 정의 할 수 있습니다.

class SearchForm(ModelForm): 
    class Meta: 
     model = SearchField 
     fields = ['name'] 
     widgets = { 
      'name' = forms.TextInput(attrs={'class':'form-control'}) 
     } 
+0

양식 클래스의 메타 클래스에서 'model = MyModel'문을 사용하여 양식의 필드를 선언했습니다. 이 경우 속성을 어떻게 추가합니까? –

+0

@RakeshK이 내 대답을 편집했습니다. 도움이 되길 바랍니다.) – cor

+0

감사합니다. @cor, 편집 된 답변이 저에게 효과적이었습니다! –

1

가장 쉬운 방법은 crispy-forms입니다.

+1

내 답이 될 것입니다. 바보가되지 마십시오, 도구를 사용하십시오 :) – cezar

0

당신은 또한 Form__init__ 다음과 같은에서 위젯의 클래스를 지정할 수 있습니다하십시오 ModelForm 사용

class SearchForm(forms.Form): 
    q=forms.CharField(widget=forms.TextInput(attrs={'class':'form-control', 'placeholder':'Search'})) 

또 다른 예 예를 들면 다음과 같습니다. ModelForm이 있고 기본 위젯 또는 필드를 덮어 쓰지 않으려는 경우에 유용합니다.

class SearchForm(forms.ModelForm): 
    def __init__(self, *args, **kwargs): 
     super(SearchForm, self).__init__(*args, **kwargs) 
     self.fields['q'].widget.attrs = {'class': 'form-control'} 

    class Meta: 
     model = SearchQuery 
     fields = ('q',) 
관련 문제