Python DRF添加非模型字段只是为了更新或创建模型实例

Python DRF添加非模型字段只是为了更新或创建模型实例,python,django,django-rest-framework,Python,Django,Django Rest Framework,我现在和DRF有这个问题 我收到了模型未使用的额外字段。但这些值将定义模型中的字段 { "file_name": "test", "file_type": "jpg", "file": basex64 file, "url_img": null } 我买了这个模型 class imageModel(models.Model): id = models.AutoField

我现在和DRF有这个问题

我收到了模型未使用的额外字段。但这些值将定义模型中的字段

{
"file_name": "test",
"file_type": "jpg",
"file": basex64 file,
"url_img": null
}
我买了这个模型

class imageModel(models.Model):
   id = models.AutoField(primary_key=True)
   url_img = models.textField(null=False)


我所需要的就是解析文件名和文件类型来上传img,创建一个url\u img并上传到云上。有没有办法通过DRF做到这一点?

正如穆罕默德所回答的,您为每个字段添加了一些序列化程序。MethodField()。还可以在元类中添加下一个方法

def to_internal_value(self, data):
        internal_value = super(ImageSerializer, self).to_internal_value(data)
        file_name = data.get("file_name")
        file = data.get("file")
        file_type= data.get("file_type")
        internal_value.update({
            "file_name": file_name,
            "file": file,
            "content_type": content_type
        })
        return internal_value

并在create/update方法上检索这些字段。DRF的方法是在serializer类中显式定义额外的字段

class ImageModelSerializer(serializers.ModelSerializer):
    file_name = serializers.CharField(write_only=True)
    file_type = serializers.CharField(write_only=True)
    file = serializers.CharField(write_only=True)

    class Meta:
        model = ImageModel
        fields = "__all__"
类ImageModelSerializer(serializers.ModelSerializer):
file\u name=serializers.CharField(write\u only=True)
file_type=serializers.CharField(write_only=True)
file=serializers.CharField(write_only=True)
类元:
模型=图像模型
fields=“\uuuu all\uuuuuu”
在这里,我使用了,因为所有这些数据都是字符串(如果不是,则相应地选择序列化器字段)


另外,设置将帮助我们从响应中省略这些字段。

尝试使用serializer.MethodField是的,我得到了这些字段,但serializer不知何故给了我异常。您在模型中不使用ImageField而不是textfield有什么具体原因吗?
Serializers.MethodField()
?嗯。。。我在官方文件中没有看到任何相同的参考。你是说?