11from django .shortcuts import render
22
33# from rest_framework import generics, permissions
4+ from rest_framework .exceptions import ValidationError
45from rest_framework .response import Response
56from rest_framework .views import APIView
67from rest_framework .viewsets import ModelViewSet
8+ #from rest_framework.permissions import IsAuthenticated
79
810from .models import Task , Topic , Time
911from .serializers import TaskReadSerializer , TaskWriteSerializer , TopicSerializer , TimeSerializer
@@ -25,6 +27,9 @@ def get(self, request):
2527 return Response (serializer .data )
2628
2729class TaskViewSet (ModelViewSet ):
30+
31+ #permission_classes = [IsAuthenticated] # Uncomment when authentication is added.
32+
2833 def get_serializer_class (self ):
2934 if self .action in ['list' , 'retrieve' ]:
3035 return TaskReadSerializer
@@ -41,4 +46,12 @@ def get_queryset(self):
4146 return Task .objects .all ()
4247
4348 def perform_create (self , serializer ):
44- serializer .save (user = self .request .user )
49+ # Use explicit user_id when provided (no auth yet); otherwise require auth
50+ user_id = self .request .data .get ("user_id" )
51+ if user_id :
52+ serializer .save (user_id = user_id )
53+ return
54+ if self .request .user and self .request .user .is_authenticated :
55+ serializer .save (user = self .request .user )
56+ return
57+ raise ValidationError ({"user_id" : "Provide user_id or authenticate." })
0 commit comments