Advertisement
Guest User

Untitled

a guest
Aug 14th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. class ProductCreateSerializer(serializers.ModelSerializer):
  2. class Meta:
  3. model = Product
  4. fields = [
  5. "id",
  6. "product_name",
  7. "product_description",
  8. "product_price",
  9. ]
  10. def create(self,validated_data):
  11. return Product.objects.create(**validated_data)
  12.  
  13. from rest_framework import generics,status
  14. from rest_framework.parsers import FormParser,MultiPartParser
  15.  
  16. class ProductCreateAPIView(generics.CreateAPIView):
  17. queryset = Product.objects.all()
  18. serializer_class = ProductCreateSerializer
  19. permission_classes = [IsAdminOrIsSelf,]
  20. parser_classes = (MultiPartParser,FormParser,)
  21.  
  22. def perform_create(self,serializer,format=None):
  23. owner = self.request.user
  24. if self.request.data.get('image') is not None:
  25. product_image = self.request.data.get('image')
  26. serializer.save(owner=owner,product_image=product_image)
  27. else:
  28. serializer.save(owner=owner)
  29.  
  30. def test_product_creation_with_image(self):
  31. url = reverse('products_create_api')
  32. self.client.login(username='testaccount',password='testaccount')
  33. data = {
  34. "product_name" : "Potatoes",
  35. "product_description" : "Amazing Potatoes",
  36. "image" : open("local-filename.jpg","rb")
  37. }
  38. response = self.client.post(url,data)
  39. self.assertEqual(response.status_code,status.HTTP_201_CREATED)
  40.  
  41. 'DEFAULT_PARSER_CLASSES': (
  42. 'rest_framework.parsers.JSONParser',
  43. 'rest_framework.parsers.MultiPartParser',
  44. 'rest_framework.parsers.FileUploadParser',
  45. ),
  46.  
  47. file = serializers.FileField()
  48.  
  49. parser_classes = (FileUploadParser, JSONParser)
  50.  
  51. # views.py
  52. class FileUploadView(views.APIView):
  53. parser_classes = (MultiPartParser,)
  54.  
  55. def put(self, request, filename, format=None):
  56. file_obj = request.data['file'][0]
  57. ftype = request.data['ftype'][0]
  58. caption = request.data['caption'][0]
  59. # ...
  60. # do some stuff with uploaded file
  61. # ...
  62. return Response(status=204)
  63.  
  64. file.upload = Upload.upload({
  65. url: "/api/picture/upload/" + file.name,
  66. data: {
  67. file: file,
  68. ftype: 'final',
  69. caption: 'This is an image caption'
  70. }
  71. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement