python - 获取模型对象时如何默认返回image.url?

标签 python django imagefield

我希望我的模型对象始终返回字段图像的image.url

我的模型:

class Content(models.Model):
    ...
    avatar = models.ImageField(upload_to=file, blank=True, null=True)

我想要这样的东西:

class Content(models.Model):
    ...
    def get_avatar(self): # some default func for returning fields
        return self.avatar.url

它必须像这样工作,当我得到对象时:

content = Content.objects.get(pk=1)
print(content.avatar)

它应该打印路径:

/media/uploads/dsadsadsa.jpg

简单地说,我想要一些可以改变模型字段返回值的东西。

最佳答案

您可以像这样向模型添加属性,请注意我在字段名称中添加了下划线:

class Content(models.Model):
    ...
    _avatar = models.ImageField(upload_to=file, blank=True, null=True)

    @property
    def avatar(self):
        return self._avatar.url

现在你可以做:

print(content.avatar)

关于python - 获取模型对象时如何默认返回image.url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55476172/

相关文章:

python - 如何通过移动中心坐标从2D切片生成弯曲管?

python - 运行独立 pyspark 时出现 Windows 错误

python - 减去索引 - TypeError : cannot perform __sub__ with this index type: <class 'pandas.core.indexes.base.Index' >

python - 将多个 View 优化为一个 View - Django

Django - 如何显示保存在 ImageField 中的照片?

python - 从 Python 应用程序获取 Qt 样式表

python - 如何构建一个系统来处理 MQTT 代理和 Django

django rest framework 多个外键序列化

python - django 在模型自定义保存中访问上传的文件,最佳实践?