Skip to content
Snippets Groups Projects
views.py 1.09 KiB
Newer Older
Nico Vermaas's avatar
Nico Vermaas committed

from django.views.generic import ListView
Nico Vermaas's avatar
Nico Vermaas committed

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 -----------
Nico Vermaas's avatar
Nico Vermaas committed

class IndexView(ListView):
    """
    This is the main view of LDV Specification GUI.
    """
    template_name = 'lofardata/index.html'
    model = LofarData
    queryset = LofarData.objects.all().order_by('sas_id')
Nico Vermaas's avatar
Nico Vermaas committed


# ---------- REST API views ----------
Nico Vermaas's avatar
Nico Vermaas committed

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