将列链接到静态子目录中的文件; django-tables2

时间:2019-01-09 16:14:41

标签: django django-tables2

我正在尝试使用django-tables2呈现一个表,其中列之一是指向文件的链接。 Link column with link to a file in static (django-tables2, Django)响应非常接近,就我而言,我已将文件放置在static/pfd/中。

pdf = tables.TemplateColumn(template_code='{% load static %}<a href="{% static value %}">{{record.pdf}}</a>')

**请注意{{record.pdf}}将在渲染时显示pdf的名称。

如果我的pdf位于静态目录中,则此代码段有效 ,否则我收到丢失的文件错误。我试图添加子目录,但是当我这样做时,我收到了无效的语法错误。

pdf = tables.TemplateColumn(template_code='{% load static %}<a href="{% static 'pdf/' %}">{{record.pdf}}</a>')
                                                                                  ^
SyntaxError: invalid syntax

如何更新该行,以便路径正确,并导致出现此网址:

http://xx.xx.xx.xxx:8000/static/pdf/lapidus_1_0.pdf

代替:

http://xx.xx.xx.xxx:8000/static/lapidus_1_0.pdf

谢谢。

1 个答案:

答案 0 :(得分:1)

尝试以下操作:

pdf = tables.TemplateColumn(template_code=
  '''{% load static %}<a href="{% static 'pdf/'|add:value %}">{{record.pdf}}</a>''')

这会将value创建的TemplateColumn添加到'pdf/'的末尾。有关valueTemplateColumn使用的其他上下文项的更多信息,请参见docs

此外,正如我的评论中所述,请使用三引号''',以便将双引号和单引号都视为字符串中的字符。 pdf/被转义,导致SyntaxError