chibisov / django-proxy-storage

Provides simple Django storage that proxies every operation to original storage and saves meta information about files to database
http://chibisov.github.io/django-proxy-storage/docs
40 stars 11 forks source link

Storage must provide a url() method #5

Open pahaz opened 8 years ago

pahaz commented 8 years ago
  File "/Users/pahaz/__data__/venv/lib/python3.5/site-packages/django/db/models/fields/files.py", line 69, in _get_url
    return self.storage.url(self.name)
  File "/Users/pahaz/__data__/venv/lib/python3.5/site-packages/django/core/files/storage.py", line 150, in url
    raise NotImplementedError('subclasses of Storage must provide a url() method')
NotImplementedError: subclasses of Storage must provide a url() method
pahaz commented 8 years ago

Now you can hotfix it like:

    def url(self, name):
        meta_backend_obj = self.meta_backend.get(path=name)
        return self.get_original_storage(meta_backend_obj=meta_backend_obj)\
            .url(meta_backend_obj['original_storage_path'])