self.image.width 的 Django 模型方法性能

Django Model Method Performance With self.image.width

我有以下模型方法....

def make_image_width(self):
    """
    Returns image width of the object.
    """
    if self.image:
        return self.image.width
    return "null"

当我 运行 在序列化程序中执行此操作时,渲染 100 个对象需要 2 分钟。

class ImageSerializer(serializers.HyperlinkedModelSerializer):
    image_width = serializers.ReadOnlyField(source='make_image_width')


    class Meta:
        model = Image
        fields = (
            'id','image_width',)

为什么 self.image.width 这么慢?我该如何改进?

您的方法读取图像文件以获得宽度。

您应该在模型中创建一个整数字段并使用 ImageFieldwidth_field 属性指向它。