2017-01-12 4 views
0

Я пытаюсь получить URL-адрес изображения из базы данных, отправив идентификатор в запросе.Отображение изображения django rest framework

views.py

class RenderImage(APIView): 

    def post(self, request): 
      print(request.data) 


    serializer = ImageSerializer(data = request.data) 
     print(serializer.is_valid()) 
     print(request.data['id']) 
     if(serializer.is_valid()): 
      print("1") 
      tags = serializer.data['id'] 
      output = {} 
      images = Image.objects.get(pk = request.data['id']) 
      print("2") 
      # output['image'] = serializer.data 
      for image in images: 
       output.append(image.url) 
      text = {'status': 1, 'data':output} 
     else: 
      text = {'status':-1, 'data':serializer.errors} 
     return Response(text) 

models.py

class Image(models.Model): 
    image = models.ImageField(upload_to = 'images/') 

    def __unicode__(self): 
     return os.path.basename(self.image.name) 

serializers.py

class ImageSerializer(serializers.ModelSerializer):#test 

    class Meta: 
     model = Image 

в представлениях сериализатор является недействительным, так что вид не идет ни малейшего представления что не так??

+0

вы можете попытаться получить 'печати (serializer.errors) 'после выполнения' serializer.is_valid() ' – peckuliarYak

+0

он дает мне« изображение не было отправлено » – Engineer

+0

Вам нужно добавить« MultiPartParser »или« FileUploadParser »в конфигурацию REST_FRAMEWORK. [Анализаторы DRF] (http://www.django-rest-framework.org/api-guide/parsers/#fileuploadparser). надеюсь, это поможет – peckuliarYak

ответ

0

, чтобы получить изображение объекта использовать фильтр, как это в ваших взглядах ....

img_url=Image.objects.filter(id=request.data['id']) 

и теперь вы можете передать это в сериализаторе, чтобы получить данные в формате JSON

Смежные вопросы