turbogears запрашивает файл в базе данных

Я использую фреймворк Turbogears-2.3 и теперь знаю, как загружать файлы в базу данных с помощью tgext.datahelpers. Я понимаю, что файл загружается на диск, а в базе данных метаданные сохраняются в формате JSON. Теперь я хочу запросить базу данных и хотел, чтобы ссылка генерировалась в столбце файлов, поэтому, если кто-то щелкнет по ней, файл можно будет загрузить. Однако, когда я попытался запросить базу данных и просмотреть таблицу, в столбце файла я получил текст, подобный объекту trai.model.model.F_AttachedFile по адресу 0xa7325bac (trai — это имя проекта). Когда я перебирал таблицу и печатал значение элемента в консоли javascript, печаталось то же самое. Может кто-нибудь, пожалуйста, скажите мне, как создать ссылку для загрузки из этого. Большое тебе спасибо


person neeraj    schedule 05.11.2014    source источник


Ответы (1)


Не уверен, что полностью понял ваш вопрос, небольшой фрагмент кода мог бы помочь понять контекст, но если я правильно догадался, вы пытаетесь получить URL-адрес загруженного файла tgext.datahelpers.

В таком случае см. https://bitbucket.org/axant/tgext.datahelpers#rst-header-attachments каждое вложение Column предоставляет свойство url, поэтому оттуда можно получить URL-адрес.

Существует также пример, который сохраняет модель Document с полем file и запрашивает ее обратно, печатая URL-адрес.

person amol    schedule 09.11.2014
comment
большое спасибо за эту подсказку. После небольших манипуляций я смог получить URL. На самом деле я переопределяю класс AttachedFile по умолчанию, но при написании нового класса F_AttachedFile я забыл добавить self.uuid в параметр self.url. Теперь я могу получить URL-адреса. И следующая задача — сделать их кликабельными в отображении сетки. Не могли бы вы подсказать по этому поводу. Спасибо - person neeraj; 11.11.2014
comment
если под отображением сетки вы подразумеваете TurboGears Admin // CrudRestController, вы можете взглянуть на turbogears.readthedocs.org/en/latest/turbogears/wikier/ показывает, как отобразить поле URL со ссылкой внутри. - person amol; 11.11.2014
comment
Большое тебе спасибо. Я проверю это решение. Однако я сделал это с помощью jquery. - person neeraj; 11.11.2014