我正在建立一个使用django-tables2和django-filters返回数据表的站点。我已经弄清了所有这些(大部分),并且弄清楚了如何使用查询来填充表。我正在努力成功地聚合查询集中的数据。我想按专业显示平均收入,并且获得多行而不是汇总。这是代码。感谢您提供的任何帮助!奖励点是,如果有人知道为什么某些学位类型值中显示一个正方形,而该正方形未显示在我用来填充数据库的CSV中。谢谢!
models.py
class MajorData(models.Model):
unitid = models.IntegerField()
opeid6 = models.IntegerField()
instname = models.CharField(max_length=255, verbose_name='Name of Institution')
control = models.CharField(max_length=255,null=True, blank=True)
main = models.IntegerField(null=True, blank=True)
cipcode = models.IntegerField(null=True, blank=True)
cipdesc = models.CharField(max_length=255,null=True, blank=True, verbose_name='Degree Description')
credlevel = models.IntegerField(null=True, blank=True)
creddesc = models.CharField(max_length=255,null=True, blank=True, verbose_name='Degree Type')
count = models.IntegerField(null=True, blank=True)
debtmedian = models.IntegerField(null=True, blank=True, verbose_name='Median Debt')
debtpayment10yr = models.IntegerField(null=True, blank=True)
debtmean = models.IntegerField(null=True, blank=True)
titleivcount = models.IntegerField(null=True, blank=True)
earningscount = models.IntegerField(null=True, blank=True)
mdearnwne = models.IntegerField(null=True, blank=True, verbose_name='Median Earnings')
ipedscount1 = models.IntegerField(null=True, blank=True)
ipedscount2 = models.IntegerField(null=True, blank=True)
def __str__(self):
return self.instname
tables.py
class MajorTable(tables.Table):
class Meta:
orderable=False
model = MajorData
template_name = "django_tables2/bootstrap4.html"
fields = ("cipdesc","creddesc","mdearnwne")
filters.py
class MajorFilter(django_filters.FilterSet):
class Meta:
model = MajorData
fields = {'instname': ['icontains'],
'cipdesc': ['icontains'],
'creddesc': ['icontains']
}
views.py
class ListView(SingleTableMixin, FilterView)
table_class = MajorTable
queryset = MajorData.objects.all().annotate(Avg('mdearnwne')).exclude(mdearnwne__isnull=True)
template_name = 'majordata.html'
filterset_class = MajorFilter