20 lines
642 B
Python
20 lines
642 B
Python
import structlog
|
|
from django.views.decorators.cache import cache_page
|
|
from rest_framework.decorators import api_view
|
|
from rest_framework.response import Response
|
|
from wagtail.models import Page
|
|
|
|
logger = structlog.get_logger(__name__)
|
|
|
|
|
|
@api_view(['GET'])
|
|
@cache_page(60 * 60 * 8, cache="api_page_cache")
|
|
def page_api_view(request, slug):
|
|
try:
|
|
page = Page.objects.get(slug=slug, locale__language_code='de-CH')
|
|
serializer = page.specific.get_serializer_class()(page.specific)
|
|
return Response(serializer.data)
|
|
except Exception as e:
|
|
logger.error(e)
|
|
return Response({"error": str(e)}, status=404)
|