2014-03-04 37 views
0

我正在使用django-tables2來渲染我的應用程序表。我需要將包含鏈接<a> </a>的列添加到對象。Django表格2:LinkColumn

這裏是我的代碼:

# 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

嘗試在'context = {'scan':scan,}'中刪除逗號。 – Drewness

+0

@Drewness它應該與逗號工作,在懷疑我嘗試沒有逗號,但仍然沒有在鏈接單元格。 – user3379728

回答

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'} 
+0

我不明白。從我的理解中,LinkColumn被設計爲通過使用反向(url解析器),以正確的id自動創建一個鏈接到我的ScanDetailView。 – user3379728

+0

我認爲發生的事情是你有一個鏈接,但沒有文字點擊(一個空的''標籤)。所以你需要一些可點擊的文字。 – joerick