Django - Метод url класса хранилища

<

url метод будет выполняться при рендеринге каждого изображения, что приведет к обращению к Dropbox API, что кажется излишним.

Будет ли правильным вместо этого перенести функциональность общей ссылки в _save и хранить URL в атрибуте name (varchar в DB) и оставить url() пустым?

Другими словами в _save вернуть (сохранить в БД) url изображения вместо названия изображения.

class DropboxStorage(Storage):
    def __init__(self, options=None):
        if not options:
            options = settings.CUSTOM_STORAGE_OPTIONS
        self.d = dropbox.Dropbox(options['DROPBOX_KEY'])

    def _open(self, name, mode='rb'):
        with open(name, mode=mode) as f:
            return File(f, name)

    def _save(self, name, content):
        meta = self.d.files_upload(
            content.read(), f'/Images/{name}', autorename=True)
        return meta.name

    def url(self, name):
        link_meta = self.d.sharing_create_shared_link(f'/Images/{name}')
        return link_meta.url.replace('dl=0', 'raw=1')

    # no need to implement since files_upload will take care of duplicates
    def exists(self, name):
        return False
Вернуться на верх