Link 列 link 到静态文件(django-tables2,Django)

Link column with link to a file in static (django-tables2, Django)

我在 Django 中用 django-tables 生成了一个 table。 我想创建一个包含 links 的列到我的静态目录中的 txt 文件。 当用户单击 link 时,应显示 txt 文件。

要在 html 中为 txt 文件创建 link,我只需执行以下操作:

<a href="{% static co.log %}">txtfile</a>

但是,我在使用 django-tables 找到正确的方法时遇到了问题。 我尝试按如下方式定义 link 列:

logfiles = tables.LinkColumn('{static', text='txtfile', args=[A('log')], orderable=False, empty_values=())

这给出了错误 "Reverse for '{static' not found. '{static' is not a valid view function or pattern name."

我也试过这个:

tables.py

logfiles = tables.LinkColumn('logfile', text='bla', orderable=False, empty_values=())

urls.py:

url(r'^logfile/', views.logfile, name='logfile')

views.py:

def logfile(request):
return HttpResponse('<p>yeah</p>')

所以我可以找到一种方法来打开一个新的 url,但是如何打开一个特定的静态文件,i.e.how 以传递来自 [A('log')] 的信息, 这基本上是文件名?

感谢任何帮助。

您可以使用 TemplateColumn 来实现:

class LogTable(tables.Table):
    log = tables.TemplateColumn(
        template_code='{% load static %}<a href="{% static value %}">txtfile</a>'
    )

注意列名是log,所以不需要指定accessor。如果您希望颜色以不同的名称出现,请使用 verbose_name kwarg。