1
0
Fork 0
mirror of https://github.com/seanmorley15/AdventureLog.git synced 2025-07-28 01:09:37 +02:00

Merge pull request #139 from seanmorley15/development

chore: Update VisitedRegionViewSet to set user_id in create method
This commit is contained in:
Sean Morley 2024-07-23 12:09:49 -04:00 committed by GitHub
commit f1748a2cf0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,7 +1,7 @@
from django.shortcuts import render from django.shortcuts import render
from .models import Country, Region, VisitedRegion from .models import Country, Region, VisitedRegion
from .serializers import CountrySerializer, RegionSerializer, VisitedRegionSerializer from .serializers import CountrySerializer, RegionSerializer, VisitedRegionSerializer
from rest_framework import viewsets from rest_framework import viewsets, status
from rest_framework.permissions import IsAuthenticated from rest_framework.permissions import IsAuthenticated
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from rest_framework.response import Response from rest_framework.response import Response
@ -16,7 +16,6 @@ def regions_by_country(request, country_code):
serializer = RegionSerializer(regions, many=True) serializer = RegionSerializer(regions, many=True)
return Response(serializer.data) return Response(serializer.data)
@api_view(['GET']) @api_view(['GET'])
@permission_classes([IsAuthenticated]) @permission_classes([IsAuthenticated])
def visits_by_country(request, country_code): def visits_by_country(request, country_code):
@ -26,7 +25,6 @@ def visits_by_country(request, country_code):
serializer = VisitedRegionSerializer(visits, many=True) serializer = VisitedRegionSerializer(visits, many=True)
return Response(serializer.data) return Response(serializer.data)
class CountryViewSet(viewsets.ReadOnlyModelViewSet): class CountryViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Country.objects.all() queryset = Country.objects.all()
serializer_class = CountrySerializer serializer_class = CountrySerializer
@ -37,10 +35,18 @@ class RegionViewSet(viewsets.ReadOnlyModelViewSet):
serializer_class = RegionSerializer serializer_class = RegionSerializer
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]
class VisitedRegionViewSet(viewsets.ModelViewSet): class VisitedRegionViewSet(viewsets.ModelViewSet):
serializer_class = VisitedRegionSerializer serializer_class = VisitedRegionSerializer
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]
def get_queryset(self): def get_queryset(self):
return VisitedRegion.objects.filter(user_id=self.request.user.id) 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)