2016-07-20 4 views
1

Я использую django_filters в своем проекте, и один из них - DateFromToRangeFilter. Этот фильтр генерирует два поля ввода в ваших шаблонах, образно - «От» и «Кому».Как установить различные заполнители для DateFromToRangeFilter?

Невозможно установить аналогичный атрибут для этих полей. Например:

end = django_filters.DateFromToRangeFilter(
     widget=django_filters.widgets.RangeWidget(
       attrs={'placeholder': 'yyyy-mm-dd'})) 

Но я не могу понять, как установить различные заполнители (или любые другие атрибуты для каждого из полей). Например, «Введите дату начала» для поля «От» и «Введите дату окончания» для поля «Кому».

Может кто-нибудь помочь?

ответ

2

По умолчанию MultiWidget передает все attrs в каждый подвиджет. Чтобы обойти это, вам придется подклассы RangeWidget и предоставить отдельные параметры attrs для каждого из виджетов from/to.

Что-то вроде следующего:

class MyRangeWidget(RangeWidget): 
    def __init__(self, from_attrs=None, to_attrs=None, attrs=None): 
     super(MyRangeWidget, self).__init__(attrs) 

     if from_attrs: 
      self.widgets[0].attrs.update(from_attrs) 
     if to_attrs: 
      self.widgets[1].attrs.update(to_attrs) 
+1

Я думаю, что вторая "если" должно быть так: 'если to_attrs: self.widgets [1] .attrs.update (to_attrs)' – user353255

Смежные вопросы