2014-07-11 51 views
0

我正在使用djangotables2在django中顯示我的表。我不想顯示模型本身,但更復雜一些:查詢對象,帶有註釋和計數以及更多聚合函數。但是,當表格呈現時,它只顯示模型的字段而不顯示我的查詢對象的字段。那麼,我的模型也有新的屬性,所以它不是一個基本的模型。不知道如何解決這個問題。無法使用Djangotables2渲染我的模型和查詢對象中的所有自定義字段

// //視圖

serial_number_list = TestSerialNumber.objects.filter(test_pool=test_pool).annotate(test_runs=Count('testrun')).order_by(o) 
table = TestSerialNumberTable(serial_number_list) 
RequestConfig(request).configure(table) 

// // models.py

class TestSerialNumber(models.Model): 
    serial_number = models.ForeignKey("core.SerialNumber", on_delete=models.PROTECT) 
    test_pool = models.ForeignKey("TestPool", blank=True, null=True) 

    def __unicode__(self): 
     return self.serial_number.serial_number 

    def status(self): 
     try: 
      test_result = self.testresult_set.latest('report') 
     except TestResult.DoesNotExist: 
      return 'unknown' 
     else: 
      return test_result.test_status.name 

    class Meta: 
     db_table = 'ats2_serialnumber' 

// // tables.py

import django_tables2 as tables 
from ats2.models import TestSerialNumber 

class TestSerialNumberTable(tables.Table): 

    class Meta(object): 
     model = TestSerialNumber 

預先感謝!!!

回答

1

this,你需要添加這些字段(這不是模型,但在查詢集加)在表類:

import django_tables2 as tables 
from ats2.models import TestSerialNumber 

class TestSerialNumberTable(tables.Table): 
    test_runs= tables.Column() 

    class Meta(object): 
     model = TestSerialNumber 
1

你也可以試試這個,我已經測試和它的工作。 。

URL(R '^ index_function_view /',index_function_view,名稱= 'index_function_view'),

__author__ = 'ranvijay' 

from django.shortcuts import render_to_response 
import django_tables2 as tables 
from django_tables2_reports.config import RequestConfigReport as RequestConfig 
from django_tables2_reports.tables import TableReport 
from django_tables2_reports.utils import create_report_http_response 
from django.template import RequestContext 
from test_app.models import Person 

class PersonTable(TableReport, tables.Table): 

    class Meta: 
     model = Person 
     fields = ("id", "name", "active") 
     attrs = {"class": "paleblue"} 

def index_function_view(request): 
    objs = Person.objects.filter(active=True) 
    table = PersonTable(objs) 
    table_to_report = RequestConfig(request).configure(table) 
    if table_to_report: 
     return create_report_http_response(table_to_report, request) 
    return render_to_response('person_list.html', 
           {'table': table}, 
           context_instance=RequestContext(request)) 
相關問題