gpt4 book ai didi

django 获取文件大小并将其放入序列化程序中

转载 作者:行者123 更新时间:2023-12-04 07:15:53 25 4
gpt4 key购买 nike

serializers.py

class ModFileSerializer(serializers.ModelSerializer):
size = serializers.CharField(default=os.path.getsize('file'), max_length=16)
class Meta:
model = models.ModFile
fields = '__all__'

read_only_fields = (
'size',
)
模型.py
class ModFile(models.Model):
downloads = models.IntegerField(default=0)
file = models.FileField(upload_to='mods/')
created_at = models.DateTimeField(auto_now_add=True)
这里我有一个 ModFile 模型的序列化程序,唯一缺少的是文件的大小,我知道 os.path.getsize() 需要文件的确切位置,所以我如何实际访问模型中的文件字段顺序传递 getsize() 函数还是有更好的方法来做到这一点?

最佳答案

class ModFileSerializer(serializers.ModelSerializer):
size = serializers.SerializerMethodField()

def get_size(self, obj):
return os.path.getsize(obj.file.path)

class Meta:
model = models.ModFile
fields = '__all__'

read_only_fields = (
'size',
)
我认为这在您使用此序列化程序的任何时候都有效。 obj在 get_size 方法中是实例本身。

关于django 获取文件大小并将其放入序列化程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68770811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com