Django表2:LinkColumn

时间:2014-03-04 16:12:57

标签: django django-tables2

我正在使用django-tables2来渲染我的app表。我需要向对象添加包含链接<a> </a>的列。

这是我的代码:

# Extract of myapp views.py

class ScanView(View):
    template_name = 'scanner/scan.html'

    def get(self,request, *args, **kwargs):

        scans = Scan.objects.all().order_by('-last_date')
        scans_tb = ScanTable(scans, prefix="1-")
        RequestConfig(request, paginate=False).configure(scans_tb)
        context = {'scans_tb': scans_tb}

        return render(request, self.template_name, context)


class ScanDetailView(View):

    template_name = 'scanner/detail.html'

    def get(self,request, scan_id):
        scan = get_object_or_404(Scan, pk=scan_id)
        context = {'scan': scan,}

        return render(request, self.template_name, context)

#extract of urls.py

    url(r'^scan$', views.ScanView.as_view()),
    url(r'^scan/(?P<scan_id>\d+)/$', views.ScanDetailView.as_view(), name='detail'),)

#Extract of tables.py

class ScanTable(tables.Table):
    link = tables.LinkColumn('detail', args=[tables.A('pk')])

    class Meta:
        model = Scan
        attrs = {'class':'paleblue'}

有一个名为link的列但其中没有任何内容。我没有看到我错过了什么,有人可以帮助我吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

Django-tables2使用列的名称来查找要在模型上显示的值。你的模型有link字段吗?如果没有,这将是空白。或者,您可以在列上提供“默认”属性,即

class ScanTable(tables.Table):
    link = tables.LinkColumn('detail', args=[tables.A('pk')], default='Link')

    class Meta:
        model = Scan
        attrs = {'class':'paleblue'}