def create(self, request: Request, course_id: int): card: Card = ASerializer().from_dict(request.data, Card) card.creator = request.user card.course = Course.get_or_404(pk=course_id, user=request.user) card.save() return JsonResponse( {"data": ASerializer().to_dict(card, groups=['card_detailed'])})
def retrieve(self, request: Request, pk: str): user: User = request.user course: Course = Course.get_or_404(pk=request.data['course_id'], user=user) return JsonResponse({ "data": ASerializer().to_dict(course, groups=['course_detailed', 'user_detailed']) })
def update(self, request: Request, course_id: int, pk: int): # make sure data has the right format card = ASerializer().from_dict(request.data, UpdateCard) card_data = ASerializer().to_dict(card, groups=["card_basic"]) card: Card = get_object_or_404(Card, pk=pk, user=request.user) for key, value in card_data.items(): setattr(card, key, value) card.course = Course.get_or_404(pk=request.data['course_id'], user=request.user) card.save() return JsonResponse( {"data": ASerializer().to_dict(card, groups=['card_detailed'])})