Оказалось, что данное решение расставляет эти звездочки везде в т.ч. и в админке django. И вот решил я это дело побороть. Получилось наверное по-колхозному, но все же:
def add_required_label_tag(original_function): """Adds the 'required' CSS class and an asterisks to required field labels.""" decorated_forms = ["QuestionForm",] def required_label_tag(self, contents=None, attrs=None): form_name = self.form.__class__.__name__ if form_name in decorated_forms: contents = contents or escape(self.label) if self.field.required: if not self.label.endswith(' <span>*</span>'): self.label += ' <span>*</span>' contents += ' <span>*</span>' # attrs = {'class': 'required'} return original_function(self, contents, attrs) return required_label_tag def decorate_bound_field(): from django.forms.forms import BoundField BoundField.label_tag = add_required_label_tag(BoundField.label_tag)
Итак, смысл в том, что я делаю список форм, где будем декорировать лейблы (decorated_forms). Список этот состоит из имен классов этих форм а далее в коде, я проверяю, есть ли текущий класс в моем списке или нет.
UPDATE:
Если вы используете django 1.6+, вам нужно обратить внимание на эти изменения!
Комментариев нет:
Отправить комментарий