Django-tables2 экспорт пользовательского столбца URL
G'day All,
Надеюсь, у всех все хорошо.
У меня есть таблица, которую я отображаю с пользовательским столбцом, который является гиперссылкой.
Проблема в том, что когда я экспортирую в CSV, он дает мне только текст гиперссылки, а не саму гиперссылку.
Я хочу экспортировать гиперссылку, а не только текст, возможно ли это? (если мне нужно переключиться на экспорт в xlsx, это тоже подойдет) (в худшем случае я могу просто сделать текст полным путем)
Пользовательская колонка:
document_link = tables.TemplateColumn('<a href="{{record.document_file.url}}/" target="_blank">{{record.document_file}}</a>', verbose_name="Document location")
Заранее спасибо,
Я бы предложил использовать "Включение и исключение столбцов" https://django-tables2.readthedocs.io/en/latest/pages/export.html#including-and-excluding-columns
Добавьте exclude_from_export=True к полю document_link, и невидимое поле document_link_for_csv.
class DocumentTable(tables.Table):
document_link = tables.TemplateColumn(
'<a href="{{record.document_file.url}}/"
target="_blank">{{record.document_file}}</a>',
verbose_name="Document location",
exclude_from_export=True
)
document_link_for_csv = columns.Column(
visible=False,
accessor="document_file__url"
)
Вот последний способ, как мне удалось это сделать:
class DocumentTable(ExportMixin,tables.Table):
document_link = tables.TemplateColumn('<a href="{{record.document_file.url}}/" target="_blank">{{record.document_file}}</a>', verbose_name="Document location", exclude_from_export=True)
document_URL = tables.TemplateColumn('render_replaces_this',visible=False)
def render_document_URL(self, value, record):
return format_html(
'{}{}',
self.request.META['HTTP_HOST'],
record.document_file.url,
)