Advertisement
izznogooood

Untitled

Jul 6th, 2019
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.73 KB | None | 0 0
  1. #models.py
  2. class ItemPicture(models.Model):
  3.     item = models.ForeignKey(Item, on_delete=models.CASCADE, related_name='pictures')
  4.     img = models.ImageField(upload_to=pathfinder, blank=True)
  5.  
  6.     def __str__(self):
  7.         return f'{self.item.part_number}'
  8.  
  9. #admin.py
  10. class PictureInline(admin.StackedInline):
  11.     model = ItemPicture
  12.     extra = 1
  13.  
  14.  
  15. @admin.register(Item)
  16. class AdminProductItem(admin.ModelAdmin):
  17.     filter_horizontal = ('concepts', 'subcategories', 'accessories',)
  18.     raw_id_fields = ('replacement', 'supplier', 'manufacturer')
  19.     inlines = [PictureInline]
  20.  
  21. #serializers.py
  22. class ItemPictureUrlSerializer(serializers.RelatedField):
  23.     queryset = ItemPicture
  24.  
  25.     def to_representation(self, value):
  26.         return self.context['request'].build_absolute_uri(value.img.url)
  27.  
  28.  
  29. class ItemSerializer(serializers.ModelSerializer):
  30.     pictures = ItemPictureUrlSerializer(many=True)
  31.  
  32.     class Meta:
  33.         model = Item
  34.         fields = '__all__'
  35.  
  36.  
  37. class SingleItemSerializer(serializers.ModelSerializer):
  38.     pictures = ItemPictureUrlSerializer(many=True)
  39.  
  40.     class Meta:
  41.         model = Item
  42.         fields = '__all__'
  43.         depth = 1
  44.  
  45. #views.py
  46. class ItemViewSet(viewsets.ViewSet):
  47.     permission_classes = [HasAPIKey | permissions.IsAdminUser]
  48.  
  49.     def list(self, request):
  50.         queryset = Item.objects.all()
  51.         serializer = ItemSerializer(queryset, many=True, context={'request': request})
  52.         return Response(serializer.data)
  53.  
  54.     def retrieve(self, request, pk=None):
  55.         queryset = Item.objects.all()
  56.         item = get_object_or_404(queryset, pk=pk)
  57.         serializer = SingleItemSerializer(item, context={'request': request})
  58.         return Response(serializer.data)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement