filters.py 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. #coding=utf-8
  2. import django_filters
  3. from models import FinanceCategory, FinancePurpose, dbFinanceIncome
  4. from apps.base import clean_datetime_range
  5. class FinanceCategoryFilter(django_filters.FilterSet):
  6. name = django_filters.CharFilter(name='name', lookup_expr='icontains')
  7. class Meta:
  8. model = FinanceCategory
  9. fields = "__all__"
  10. class FinancePurposeFilter(django_filters.FilterSet):
  11. name = django_filters.CharFilter(name='name', lookup_expr='icontains')
  12. category_name = django_filters.CharFilter(name='category__name', lookup_expr='icontains')
  13. class Meta:
  14. model = FinancePurpose
  15. fields = "__all__"
  16. class FinanceIncomeFilter(django_filters.FilterSet):
  17. referer_no = django_filters.CharFilter(name='referer_no', lookup_expr='icontains')
  18. account_name = django_filters.CharFilter(name='account__name', lookup_expr='icontains')
  19. class Meta:
  20. model = dbFinanceIncome
  21. fields = "__all__"
  22. def __init__(self, data=None, *args, **kwargs):
  23. data = clean_datetime_range(data, 'create_time')
  24. super(FinanceIncomeFilter, self).__init__(data, *args, **kwargs)