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

结果

原文地址:https://www.cnblogs.com/a438842265/p/12595529.html