diff --git a/backend/server/worldtravel/views.py b/backend/server/worldtravel/views.py index 0e257a0..4bcec73 100644 --- a/backend/server/worldtravel/views.py +++ b/backend/server/worldtravel/views.py @@ -1,7 +1,7 @@ from django.shortcuts import render from .models import Country, Region, VisitedRegion from .serializers import CountrySerializer, RegionSerializer, VisitedRegionSerializer -from rest_framework import viewsets +from rest_framework import viewsets, status from rest_framework.permissions import IsAuthenticated from django.shortcuts import get_object_or_404 from rest_framework.response import Response @@ -16,7 +16,6 @@ def regions_by_country(request, country_code): serializer = RegionSerializer(regions, many=True) return Response(serializer.data) - @api_view(['GET']) @permission_classes([IsAuthenticated]) def visits_by_country(request, country_code): @@ -26,7 +25,6 @@ def visits_by_country(request, country_code): serializer = VisitedRegionSerializer(visits, many=True) return Response(serializer.data) - class CountryViewSet(viewsets.ReadOnlyModelViewSet): queryset = Country.objects.all() serializer_class = CountrySerializer @@ -37,10 +35,18 @@ class RegionViewSet(viewsets.ReadOnlyModelViewSet): serializer_class = RegionSerializer permission_classes = [IsAuthenticated] - class VisitedRegionViewSet(viewsets.ModelViewSet): serializer_class = VisitedRegionSerializer permission_classes = [IsAuthenticated] def get_queryset(self): - return VisitedRegion.objects.filter(user_id=self.request.user.id) \ No newline at end of file + return VisitedRegion.objects.filter(user_id=self.request.user.id) + + def create(self, request, *args, **kwargs): + # Set the user_id to the request user's ID + request.data['user_id'] = request.user.id + serializer = self.get_serializer(data=request.data) + serializer.is_valid(raise_exception=True) + self.perform_create(serializer) + headers = self.get_success_headers(serializer.data) + return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers) \ No newline at end of file