django-proxy-storage icon indicating copy to clipboard operation
django-proxy-storage copied to clipboard

Storage must provide a url() method

Open pahaz opened this issue 9 years ago • 1 comments

  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 avatar Jul 01 '16 10:07 pahaz

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'])

pahaz avatar Jul 01 '16 13:07 pahaz