filters.py 895 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from django.db.models import Q
  2. from django_filters import rest_framework as filters
  3. from .models import Album, Artist, Track
  4. class SearchFilter(filters.FilterSet):
  5. search = filters.CharFilter(method="search")
  6. def search(self, queryset, name, value):
  7. pass
  8. class ArtistFilter(filters.FilterSet):
  9. name = filters.CharFilter(lookup_expr="icontains")
  10. class Meta:
  11. model = Artist
  12. fields = ("name",)
  13. class AlbumFilter(filters.FilterSet):
  14. artist_uuid = filters.UUIDFilter("artist__uuid")
  15. name = filters.CharFilter(lookup_expr="icontains")
  16. class Meta:
  17. model = Album
  18. fields = ("artist_uuid", "name")
  19. class TrackFilter(filters.FilterSet):
  20. album_uuid = filters.UUIDFilter("album__uuid")
  21. name = filters.CharFilter(lookup_expr="icontains")
  22. class Meta:
  23. model = Track
  24. fields = ("album_uuid", "name")