def post_taskdb(request, filename): if filename not in TASK_FNAMES: return HttpResponseForbidden('Forbidden!') user = request.user data = request.raw_post_data if filename in ['pending.data', 'completed.data']: parsed = [decode_task(line) for line in data.splitlines()] if filename == 'pending.data': tasks = Task.objects.filter(status='pending', user=user) elif filename == 'completed.data': tasks = Task.objects.filter(status__in=['completed', 'deleted']) tasks.delete() for task in parsed: task.update({'user': user}) Task.fromdict(task) elif filename == 'undo.data': Undo.objects.all().delete() parsed = parse_undo(data) for undo_dict in parsed: undo_dict.update({'user': user}) Undo.fromdict(undo_dict) else: return HttpResponseNotFound() return HttpResponse()