如何为 DateFromToRangeFilter 设置不同的占位符?

Ale*_*nov 2 django-forms django-widget django-filters

我在我的项目中使用 django_filters,其中之一是 DateFromToRangeFilter。此过滤器在您的模板中生成两个输入字段,象征性地 - 'From' 和 'To'。

为这些字段设置类似的属性没有问题。例如:

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

但我无法理解如何设置不同的占位符(或每个字段的任何其他属性)。就像字段“从”的“输入开始日期”和字段“到”的“输入完成日期”一样。

有人可以帮忙吗?

She*_*rpa 6

默认情况下,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)
Run Code Online (Sandbox Code Playgroud)