Django tables 2: LinkColumn



我正在使用django-tables2来渲染我的应用程序表。我需要添加一个包含指向对象<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 的列,但其中没有任何内容。我没有看到我错过了什么,有人可以帮助我吗?

谢谢!

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

class ScanTable(tables.Table):
    link = tables.LinkColumn('detail', args=[tables.A('pk')], default='Link')
    class Meta:
        model = Scan
        attrs = {'class':'paleblue'}