Sobes.tech
Middle — Senior

Check the deferred task for changing feedback status

livecode

Task condition

It is necessary to ensure that after creating a Feedback model record, the deferred task change_status_feedback.delay(feedback) is called, and it correctly changes the object's status. To do this, a Feedback object is created in the view, and then a Celery task is launched, which should set the status field to 'in_progress' and save the changes.

@app.task(name='change_status_feedback')
def change_status_feedback(feedback):
    feedback.status = 'in_progress'
    feedback.save()

class CreateFeedbackAPIView(APIView):
    def create(self, request):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        feedback = Feedback.objects.create(**serializer.validated_data)
        change_status_feedback.delay(feedback)
        return feedback