# 這是django下的一張表
from django.db import models
class Auction(models.Model): # cover = models.CharField(verbose_name='封面', max_length=128,null=True, blank=True) cover = models.FileField(verbose_name='封面', max_length=128,null=True, blank=True)
from rest_framework import serializers
class AuctionModelForm(serializers.Serializer):
class Meta:
model = models.Auction
exclude = ['cover']
我在自己寫項目的時候,遇到了一個問題,就是將原來的CharField 改成 FileField的時候 他的api會出錯
上面代碼我們訪問接口的時候
改 序列化的 類
方式一
from rest_framework import serializers class AuctionModelForm(serializers.Serializer): cover=serializers.CharField() class Meta: model = models.Auction exclude = ['cover']
方式二
from rest_framework import serializers class AuctionModelForm(serializers.Serializer): ct = serializers.SerializerMethodField() class Meta: model = models.Auction exclude = ['cover'] def get_ct(self,obj):
# return obj.cover.path 帶有拼接的url地址 不是我們想要的
return obj.cover.name
結果