3

私は2つの別々のサーバーを持っています。1 つは で django インスタンスをホストして"www.example.com"おり、もう 1 つは で静的ファイルを提供しています"static.example.com"。django の設定では、MEDIA_URLを指します"static.example.com"。したがって、私の写真は"static.example.com"ドメインを使用しています。

フォトログに使用したいのですが、フォトログの設定を"www.example.com"上書きする方法がわかりません。MEDIA_URLこれを解決する方法を知っていますか?

注: Django は、AWS (Amazon Web Service) でホストされている静的ファイルである apache を介してサービスを提供しています。photologue ドメインのみを変更したいだけです。その他の静的ファイルは、そのままにしておく必要があります。

4

1 に答える 1

1

残念ながら、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 管理者が使用するため、 「admin_thumbnail」という名前でget_admin_thumbnail_url()を定義すると、上記のメソッドもそこで機能するはずです。PhotoSize

sample_url()エフェクトには、Django admin のサンプル画像にエフェクトを表示するために使用されるメソッドがあります。このメソッドはに基づいてMEDIA_URLいるため、機能しません。残念ながら、この場合、このメソッドを単純にオーバーライドすることはできません。ただし、これらのイメージは変更されないため、AWS にアップロードできます。

于 2012-06-12T10:30:20.877 に答える