Я погуглил и нашел кучу ненужного говна. А решение подсказал чувак по имени Farhan Ahmad, решил он эту задачу судя по всему еще в 2009 году.Для тех у кого туго с английским, кратко поясню что нужно сделать. Кстати Farhan решил еще и приделывать к лейблу класс 'required'.
Итак, для начала определяются две функции:
Первая — декоратор, а вторая просто вспомогательная, которая применит декоратор ко всем формам. Автор предлагает поместить этот код в
- from django.utils.html import escape
- def add_required_label_tag(original_function):
- """Adds the 'required' CSS class and an asterisks to required field labels."""
- def required_label_tag(self, contents=None, attrs=None):
- contents = contents or escape(self.label)
- if self.field.required:
- if not self.label.endswith(" *"):
- self.label += " *"
- contents += " *"
- 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
project.forms.__init__.py, я так и поступил.
А затем в модуле с формами просто вызываем следующий код:
Вот собственно и все. Решение мне очень понравилось, thank you Farhan Ahmad! Сам автор благодарит так же и Adil Saleem.
- from project.forms import decorate_bound_field
- decorate_bound_field()
UPDATE:
Решение было мной доработано, всвязи с проблемами в админке django
UPDATE 2:
С выходом django 1.6 нарисовалась еще одна проблемка
Комментариев нет:
Отправить комментарий