Open zahralizadeh opened 4 years ago
سلام، وقت بخیر @zahralizadeh
برای این کار شما باید فیلدهای تاریخ رو مثل حالت زیر بازنویسی کنید. چون جنبه آموزشی نیز داشت این کد رو در این جا قرار دادم.
```python import django_filters from django import forms from django_filters.fields import DateRangeField from django_filters.widgets import DateRangeWidget, SuffixedMultiWidget from jalali_date.fields import JalaliDateField, SplitJalaliDateTimeField from jalali_date.widgets import AdminJalaliDateWidget, AdminSplitJalaliDateTime from .models import One class JalaliDateRangeWidget(DateRangeWidget): def __init__(self, attrs=None): widgets = (AdminJalaliDateWidget, AdminJalaliDateWidget) super(SuffixedMultiWidget, self).__init__(widgets, attrs) class JalaliDateRangeField(DateRangeField): widget = JalaliDateRangeWidget def __init__(self, *args, **kwargs): fields = ( JalaliDateField(), JalaliDateField() ) super(DateRangeField, self).__init__(fields, *args, **kwargs) class JalaliDateFromToRangeFilter(django_filters.DateFromToRangeFilter): field_class = JalaliDateRangeField class OneFilter(django_filters.FilterSet): date = JalaliDateFromToRangeFilter(label='تاریخ') class Meta: model = One fields = ['date'] ```
```
```لطفا کد لایبرری یاد شده را نیز نگاه کنید تا دقیقا متوجه بشید چه اتفاقی افتاده است.
سلام من میخوام از دیت پیکر ( انتخاب گر تاریخ) در فیلتر ست استفاده کنم:
```python class ShareholderFilter(django_filters.FilterSet): update_datetime = django_filters.DateFromToRangeFilter(widget=django_filters.widgets.RangeWidget(attrs={'type': 'date'})) class Meta: model = company_shareholder fields = ['update_datetime'] def __init__(self, *args, **kwargs): super(ShareholderFilter, self).__init__(*args, **kwargs) # self.filters['update_datetime'] = JalaliDateField(widget=AdminJalaliDateWidget)؟؟؟؟؟؟؟؟ self.filters['update_datetime'].label="تاریخ بروزرسانی از" ```
ممنون میشم راهنمایی کنید؟