12

我正在使用 MySQL 视图(Create View as Select ...),并成功地将视图连接到这样的模型:

#models.py
class Dashboard(models.Model):
    devenv = models.CharField(max_length=30, primary_key=True)
    numberofissues = models.BigIntegerField()
    class Meta:
        managed=False
        db_table = 'stability_dashboard'

我还设法使用示例中的样板代码在表格中显示数据:

#tables.py
class DashboardTable(tables.Table):
    class Meta:
        model = Dashboard
        attrs = {'class': 'paleblue'}

#views.py
def dashboard(request):
    table = DashboardTable(Dashboard.objects.all())
    RequestConfig(request).configure(table)
    return render(request, 'uptime/dash.html', {'table': table})

我现在想将每列中显示的标题更改为更易于理解的内容,包括空格,例如,而不是 'devenv' => 'Development Environment'

4

1 回答 1

19

只需在 tables.py 中添加要覆盖其名称的列。例如

#tables.py
将 django_tables2 导入为表
从模型导入仪表板

类仪表板表(表。表):
  devenv = tables.Column(verbose_name= '开发环境' )

  元类:
    模型 = 仪表板
    attrs = {'class': '淡蓝色'}

另一个(可能更 DRY)解决方案是保留 tables.py 并在模型定义中添加 verbose_name :

#models.py
类仪表板(模型。模型):
    devenv = models.CharField(max_length=30, primary_key=True, verbose_name='开发环境')
    numberofissues = models.BigIntegerField(verbose_name='问题数量')
    元类:
        托管=假
        db_table = '稳定性_仪表板'
于 2013-03-27T09:12:42.900 回答