blob: a88e56068dbcefd367bba0be249ec1783b417593 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
from rest_framework import viewsets
from rest_framework import filters
import datetime
from . import serializers
from . import models
class CustomDateFilterBackend(filters.BaseFilterBackend):
def filter_queryset(self, request, queryset, view):
if "today" in request.query_params:
today = datetime.date.today()
queryset = queryset.filter(created__month=today.month, created__day=today.day)
day = request.query_params.get("day")
if day:
try:
queryset = queryset.filter(created__day=day)
except ValueError:
pass
month = request.query_params.get("month")
if month:
try:
queryset = queryset.filter(created__month=month)
except ValueError:
pass
year = request.query_params.get("year")
if year:
try:
queryset = queryset.filter(created__year=year)
except ValueError:
pass
return queryset
class EntrySerializer(viewsets.ReadOnlyModelViewSet):
queryset = models.Entry.objects.all()
serializer_class = serializers.EntrySerializer
filter_backends = [
CustomDateFilterBackend, filters.OrderingFilter, filters.SearchFilter]
search_fields = ["html_text"]
ordering_fields = ["created"]
|