Python DRF Imagefield upload使用html模板而不是JSON响应

Python DRF Imagefield upload使用html模板而不是JSON响应,python,django,django-rest-framework,Python,Django,Django Rest Framework,我正在使用Django Rest框架3.5.4 Django 1.9 python 3.5和Angular 1.4.5。我遇到了一个问题,我可以上传/发布到图像端点,但我得到的响应是DRF模板,而不是我期望的JSON 型号.py class BeforeImage(models.Model): job = models.ForeignKey(Job, related_name='before_images') before_image = models.ImageField(up

我正在使用Django Rest框架3.5.4 Django 1.9 python 3.5和Angular 1.4.5。我遇到了一个问题,我可以上传/发布到图像端点,但我得到的响应是DRF模板,而不是我期望的JSON

型号.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'
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')
class BeforeImageViewSet(ModelViewSet):
    queryset = BeforeImage.objects.all()
    serializer_class = BeforeImageSerializer
序列化程序.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'
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')
class BeforeImageViewSet(ModelViewSet):
    queryset = BeforeImage.objects.all()
    serializer_class = BeforeImageSerializer
视图.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'
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')
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;

这是内容协商,提交表单时首选的呈现器是HTML,因为这与浏览器一致


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

您可以将您从angular发送的数据发布到django API吗?@SijanBhandari我刚刚用Payloadi更新了问题您是否尝试过:json.stringify发送数据?我曾经在我的代码中使用以下代码从angular向Django API发送post请求:
$http({
method:'post',url:'/contact/',data:JSON.stringify({test:JSON})
})它发送多部分表单数据和JSON。Stringify将JSON对象转换为字符串。