Pracuję z aplikacją przy użyciu Django Rest Framework.wysyłanie obrazów za pomocą RESTAPI
models.py
class Image(models.Model):
image_meta = models.ForeignKey('Image_Meta',on_delete=models.CASCADE,)
image_path = models.URLField(max_length=200)
order = models.IntegerField()
version = models.CharField(max_length=10)
serializers.py
class ImageSerializer(serializers.ModelSerializer):
class Meta:
model = Image
field = ('id', 'image_path' , 'order' , 'version')
views.py
class ImageList(generics.ListCreateAPIView):
queryset = Image.objects.all()
serializer_class = ImageSerializer
class ImageDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = Image.objects.all()
serializer_class = ImageSerializer
wzorców URL
url(r'^image/$',views.ImageList.as_view(),name='image_list'),
url(r'^image/(?P<pk>[0-9]+)/$',views.ImageDetail.as_view(),name='image_detail')
To jest tylko częścią całego systemu. Chcę wgrać obrazy za pomocą RESTAPI, a następnie przesłać je do Amazona s3, a następnie pobrać adres URL i zapisać w polu image_path modelu Image. Widziałem wcześniejszych rozwiązań do przesyłania plików przy użyciu REST (like this), ale nic nie działało w moim przypadku. Czy ktoś może zasugerować, w jaki sposób mogę to zrobić?
Powinieneś po prostu użyć 'ImageField'. Dzięki temu rzeczywisty obraz zostanie zapisany tylko w S3, a pole w DB będzie miało ścieżkę do obrazu, który w kodzie umożliwia dostęp za pomocą 'image.url'. –
@SaurabhGoyal Proszę wyjaśnić, w jaki sposób mogę uzyskać dostęp do adresu URL obrazu? –
Mam to i tak :) –