def start(self, request, pk): '''Quickstart a Pomodoro''' favorite = self.get_object() now = timezone.now().replace(microsecond=0) try: pomodoro = Pomodoro.objects\ .filter(owner=request.user).latest('start') except Pomodoro.DoesNotExist: # Handle the case for a new user that does not have any # pomodoros at all pass else: if pomodoro.end > now: return JsonResponse({ 'message': 'Cannot replace active pomodoro', 'data': PomodoroSerializer(pomodoro).data }, status=409) pomodoro = Pomodoro() pomodoro.title = favorite.title pomodoro.category = favorite.category pomodoro.owner = request.user pomodoro.start = now pomodoro.end = pomodoro.start + datetime.timedelta(minutes=favorite.duration) pomodoro.save() return JsonResponse(PomodoroSerializer(pomodoro).data, status=201)