from django.shortcuts import render, redirect, reverse from django.views.generic import ListView from django.conf import settings from rest_framework import generics, pagination from rest_framework.views import APIView import django_filters from django_filters import rest_framework as filters from .models import LofarData from .serializers import LofarDataSerializer # --- Filters --- class LofarDataFilter(filters.FilterSet): class Meta: model = LofarData fields = { 'sas_id': ['exact', 'icontains'], } # ---------- GUI Views ----------- def index(request): atdb_host = settings.ATDB_HOST return render(request, "lofardata/index.html", {'atdb_host': atdb_host}) # ---------- REST API views ---------- class LofarDataView(generics.ListCreateAPIView): model = LofarData serializer_class = LofarDataSerializer queryset = LofarData.objects.all().order_by('sas_id') # using the Django Filter Backend - https://django-filter.readthedocs.io/en/latest/index.html filter_backends = (filters.DjangoFilterBackend,) filter_class = LofarDataFilter