Django中的CharField 和 FileField 主要讲FileField
# 这是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
结果