Advertisement
object_254

django_filters

Dec 14th, 2021
570
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.96 KB | None | 0 0
  1. class BookingFilter(django_filters.FilterSet):
  2.     time_start = django_filters.DateFilter(field_name='time_start', lookup_expr='gte')
  3.     time_end = EndFilter(field_name='time_end', lookup_expr='lte')
  4.     guest = django_filters.ModelChoiceFilter(field_name='guest', queryset=Guest.objects.all())
  5.     additional_guests = django_filters.ModelMultipleChoiceFilter('additional_guests', queryset=Guest.objects.all())
  6.  
  7.     class Meta:
  8.         model = Booking
  9.         fields = ['time_start', 'time_end', 'guest', 'additional_guests']
  10.  
  11. class BookingViewSet(viewsets.ModelViewSet):
  12.     queryset = Booking.objects.all().select_related(
  13.         'table', 'guest', 'status').prefetch_related(
  14.         'invoices', 'additional_tables', 'additional_guests')
  15.     permission_classes = [permissions.DjangoModelPermissions]
  16.     filter_backends = [DjangoFilterBackend, filters.SearchFilter]
  17.     filter_class = BookingFilter
  18.     search_fields = ['guest__name', 'guest__phone', 'guest__email']
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement