Невозможно отобразить все настраиваемые поля из моей модели и объекта запроса с помощью Djangotables2

Я использую djangotables2 для отображения моих таблиц в django. Я не хочу показывать сама модель, а что-то более сложное: объект запроса с комментариями и подсчетами и более совокупными функциями. Однако, когда таблица визуализируется, она показывает только поля модели, а не поля моего объекта запроса. Ну, также моя модель имеет новые атрибуты, поэтому это не базовая модель. Не знаю, как это исправить.

//Посмотреть//

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

Заранее спасибо!!!

2 ответа

В соответствии с этим вам нужно добавить эти поля (которые не находятся в моделях, но добавлены в наборе запросов) в классе таблицы:

import django_tables2 as tables
from ats2.models import TestSerialNumber

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

 class Meta(object):
 model = TestSerialNumber


Вы можете попробовать это, я проверил и его работу.

url (r '^ index_function_view/', index_function_view, name = '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))

licensed under cc by-sa 3.0 with attribution.