django - 自动生成的photologue图片网址是否可以覆盖?

标签 django photologue media-url

我有两个单独的服务器。一种是在"www.example.com"上托管django实例,另一种是在"static.example.com"上提供静态文件。在Django设置中,MEDIA_URL指向"static.example.com"。因此,我的照片记录使用的是"static.example.com"域。

我想在照片日志中使用"www.example.com",但无法弄清楚如何覆盖照片日志的MEDIA_URL设置。你知道解决这个问题的任何方法吗?

注: Django通过基于AWS的Apache静态文件(Amazon Web Service)提供服务。我只想更改photologue域。其他静态文件必须保留在原处。

最佳答案

不幸的是Photologue没有为此提供设置。

但是通过查看代码,我找到了解决问题的方法。我假设您使用get_SIZE_url()方法。所有这些方法都调用self.cache_url()。因此,您可以创建ImageModel的子类(如果希望具有其附带的功能,则可以创建Photo),以覆盖此方法。

from photologue.models import ImageModel  # or Photo

class LocalPhoto(ImageModel):   # or Photo

    def cache_url(self):
        local_path = os.path.dirname(self.image.url)[7:].split('/', 1)[1]
        return '/%s/%s' % (local_path, 'cache')

如果扩展了Photo,则您已经拥有一个有效的get_absolute_url(),否则将直接实现。

Django管理员使用get_admin_thumbnail_url(),因此,如果您定义名称为'admin_thumbnail'的PhotoSize,则上述方法也应适用。

效果具有sample_url()方法,用于在Django admin中的示例图像上显示效果。此方法基于MEDIA_URL,因此无法正常工作。不幸的是,在这种情况下,您不能简单地重写此方法。但是由于这些图像不会改变,您可以将它们上传到AWS。

关于django - 自动生成的photologue图片网址是否可以覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10894852/

相关文章:

python - 如何在 Django Photologue 中制作自定义照片效果?

python - Django:MEDIA_URL 返回找不到页面

mysql - OperationalError,Django 无法连接到 MySQL 数据库

python - Django本地化,提取字符串分离消息文件

python - Django:如何将字符串转换为形式?

Python Django 媒体 url 在设置 DEBUG = True 后不起作用

django: ImageField, MEDIA_ROOT, MEDIA_URL, 如何正确设置

django - 将请求传递给 Django Admin 中的内联表单?

python - 从 Django shell 中将照片上传到 Photologue 的自定义命令?

python - 适用于图像密集型 Web 应用程序的最佳 Python/Django 架构