def post(self, request, format=True): """Add post method to create instance.""" serializer = ProfileSerializer(data=request.data, context={'request': request}) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request, pk): """Post object.""" profile = get_object_or_404(Profile, pk=pk) serializer = ProfileSerializer(profile, data=request.data, context={'request': request}) if not serializer.is_valid(): return Response({'serializer': serializer, 'profile': profile}) serializer.save() return redirect('profile-list')
def profiles(request): """ List all profiles, or create a new profile. """ if request.method == 'GET': profiles = Profile.objects.all() serializer = ProfileSerializer(profiles, many=True) return JsonResponse(serializer.data, safe=False) elif request.method == 'POST': data = JSONParser().parse(request) serializer = ProfileSerializer(data=data) if serializer.is_valid(): serializer.save() return JsonResponse(serializer.data, status=201) return JsonResponse(serializer.errors, status=400)
def get_profile(request): # if this is a POST request we need to process the form data if request.method == 'POST': # create a form instance and populate it with data from the request: form = ProfileForm(request.POST) # check whether it's valid: if form.is_valid(): # process the data in form.cleaned_data as required # ... # redirect to a new URL: data = form.cleaned_data serializer = ProfileSerializer(data=data) if serializer.is_valid(): serializer.save() return JsonResponse(serializer.data, status=201) return JsonResponse(serializer.errors, status=400) return HttpResponseRedirect('/thanks/') # if a GET (or any other method) we'll create a blank form else: form = ProfileForm() return render(request, 'profile.html', {'form': form}) # @csrf_exempt # def profiles(request): # """ # List all profile. # """ # if request.method == 'GET': # profiles = Profile.objects.all() # serializer = ProfileSerializer(profiles, many=True) # return JsonResponse(serializer.data, safe=False) # @csrf_exempt # def profile(request, pk): # try: # profile = Profile.objects.get(pk=pk) # except Profile.DoesNotExist: # return HttpResponse(status=404) # serializer = ProfileSerializer(profile) # return JsonResponse(serializer.data)
def profile(request, pk): """ Retrieve, update or delete a profile. """ try: profile = Profile.objects.get(pk=pk) except Profile.DoesNotExist: return HttpResponse(status=404) if request.method == 'GET': serializer = ProfileSerializer(profile) return JsonResponse(serializer.data) elif request.method == 'PUT': data = JSONParser().parse(request) serializer = ProfileSerializer(profile, data=data) if serializer.is_valid(): serializer.save() return JsonResponse(serializer.data) return JsonResponse(serializer.errors, status=400) elif request.method == 'DELETE': profile.delete() return HttpResponse(status=204)