我正在使用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
的列但其中没有任何内容。我没有看到我错过了什么,有人可以帮助我吗?
谢谢!
答案 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'}