2017-04-13 84 views
1

我正在使用Django Rest Framework 3.5.4 Django 1.9 python 3.5和Angular 1.4.5。我有一个问题,我可以上传/张贴到图像端点,但我得到的响应是DRF模板,而不是我期待的JSON。DRF Imagefield上传响应html模板而不是JSON

models.py

class BeforeImage(models.Model): 
    job = models.ForeignKey(Job, related_name='before_images') 
    before_image = models.ImageField(upload_to='images/', default='images/no-image.jpg') 

    def __str__(self): 
     return self.pk 

    class Meta: 
     db_table = 'before_images' 

serializers.py

class BeforeImageSerializer(ModelSerializer): 
    before_image = ImageField(
     max_length=None, allow_empty_file=False, use_url=True) 

    class Meta: 
     model = BeforeImage 
     fields = ('id', 'job', 'before_image') 

views.py

class BeforeImageViewSet(ModelViewSet): 
    queryset = BeforeImage.objects.all() 
    serializer_class = BeforeImageSerializer 

载荷

------WebKitFormBoundarybB5wAXF1Q6ZaG9pB Content-Disposition: form-data; name="job" 10 ------WebKitFormBoundarybB5wAXF1Q6ZaG9pB Content-Disposition: form-data; name="before_image"; filename="Screen Shot 2017-04-10 at 11.44.24 PM.png" Content-Type: image/png ------WebKitFormBoundarybB5wAXF1Q6ZaG9pB-- 

内容类型

Content-Type:multipart/form-data; 
+0

您可以将从角度发送的数据发布到django API吗? –

+0

@SijanBhandari我刚刚更新了有效载荷的问题 –

+0

你有没有试过:JSON.stringify发送数据? 我曾经用在我的代码下列用于从角发送POST请求的Django API: '''$ HTTP({''' 方法: 'POST', URL: '/接触/', 数据: JSON.stringify({test:json}) '''});''' –

回答

2

这是内容协商,当提交表单是HTML,因为这是与浏览器一致的首选渲染器。

如果你想要一个JSON响应,你应该确保你的请求设置了标题,所以它得到JSON。换句话说,您需要将Accept标头设置为application/json

+0

那样做了,谢谢! –