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,
        )
Вернуться на верх