2
我們在開發中使用REST,並且在我們的應用程序中有一個網站管理功能。名稱,說明,標題和圖標將來自API。我們在另一個前端應用程序上也有一個管理界面,可以對API進行更改。Django Rest Framework默認圖像字段值返回驗證
這裏是models.py:
class Website(models.Model):
icon = models.ImageField()
name = models.CharField(max_length=100)
second_name = models.CharField(max_length=100)
description = models.TextField()
這裏是serializers.py:
class WebsiteSerializer(serializers.ModelSerializer):
class Meta:
model = Website
fields = '__all__'
這裏是views.py:
class WebsiteViewSet(mixins.RetrieveModelMixin,
mixins.ListModelMixin,
mixins.UpdateModelMixin,
viewsets.GenericViewSet):
model = Website
queryset = Website.objects.filter()
permission_classes = []
renderer_classes = [renderers.JSONRenderer]
serializer_class = WebsiteSerializer
def list(self, request):
serializer = self.get_serializer(self.queryset.first())
data = serializer.data
return Response(data)
我的問題是圖標。當你更新圖標時它工作正常。但是它返回'提交的數據不是文件。檢查表單上的編碼類型。'驗證錯誤,當你沒有更改圖標..
這是當你的API的數據返回什麼一個例子:
{
"id": 1,
"icon": "http://192.168.0.110:8000/upload/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7_2017-02-23_%E4%B8%8B%E5%8D%886.02.42_zbAld6c.png",
"name": "Hello",
"second_name": "World",
"description": "Bacon Loren Ipsum Porsum"
}
我覺得這裏的問題是,當我們不要更改前端的圖標,URL字符串值是正在返回的值。我們如何解決這個問題?
P.S.
- 我們正在利用我們的前端vue.js
- DRF版本是3.5.1
如果圖標場未在JSON參與此工作將被請求的DRF。這可能是一個解決方案,但如果我不想刪除我的JSON請求上的'圖標'鍵 –
@DeanChristianArmada它應該像'icon:'''這樣的空鍵使用,你試過了嗎? –
噢好吧,我會盡快嘗試 –