Назад к задачам
Junior — Middle+
7

Обновление статуса обратной связи с отправкой письма

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

В проекте присутствует API‑контроллер CreateFeedbackAPIView, который создает запись модели Feedback, а затем асинхронно инициирует задачу change_status_feedback. Эта задача меняет статус обратной связи и вызывает функцию send_mail(). Требуется выполнить ревью кода, обнаружить синтаксические неточности и убедиться, что взаимодействие с Celery‑задачей, процесс сериализации и сохранение объекта реализованы корректно.

@app.task(name='change_status_feedback')
def change_status_feedback(feedback):
    feedback.status = 'in_progress'
    send_mail()
    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