django-uniform을 사용하고 통일 된 기능을 사용하기 위해 양식 선언에서 직접 CSS 클래스를 추가하는 방법을 찾고 있습니다 (독립형 위젯의 경우).장고 양식 선언에서 레이블의 CSS 클래스를 설정하는 방법?
내 일반적인 양식 서식 파일에 자바 스크립트의 비트를 추가하고 클래스를 추가하는 것입니다 지금은
from django import forms
def _get_cleaner(form, field):
def clean_field():
return getattr(form.instance, field, None)
return clean_field
class UniformROMixin(forms.BaseForm):
"""
UniformROMixin, inherits to turn some fields read only
- read_only = list of field names.
"""
def __init__(self, *args, **kwargs):
super(UniformROMixin, self).__init__(*args, **kwargs)
if hasattr(self, "read_only"):
if self.instance and self.instance.pk:
for field in self.read_only:
self.fields[field].widget.attrs['readonly'] = True
self.fields[field].widget.attrs['class'] += "readOnly"
# here I would like to set css class of the label
# created from the self.fields[field].label string
setattr(self, "clean_" + field, _get_cleaner(self, field))
내 유일한 방법은 (여기에 보너스, 내 재사용 가능한 읽기 전용 집에서 만든 믹스 인 조각 ...로) 수동.
브릴리언트 아이디어?
내가 좋은 해답이 될 수도 조각 발견
내가 양식 선언에 CSS 클래스를 추가하는 방법을 알고하지 않습니다,하지만 난 사용했습니다 : http://pypi.python.org/pypi/django-widget-tweaks를 사용하면 레이블 태그 및 양식 요소와 같은 속성을 템플릿 수준에서 편리하게 추가 할 수 있습니다. – Brandon
고맙습니다. 제 경우에는 장고 제복에 의해 완전히 완성 된 템플릿 부분을 다루지 않습니다. 나는 여전히 위젯의 "렌더링"메소드가 어떻게 작동 하는지를 볼 수 있으며,이 메소드를 오버라이드한다. – christophe31