12

私はMySQLビュー(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」=>「開発環境」の代わりに

4

1 に答える 1

19

オーバーライドする名前の列をtables.pyに追加するだけです。例えば

#tables.py
django_tables2をテーブルとしてインポートする
モデルからインポートダッシュボード

クラスDashboardTable(tables.Table):
  devenv = Tables.Column(verbose_name ='開発環境')

  クラスメタ:
    モデル=ダッシュボード
    attrs = {'class':'paleblue'}

もう1つの(おそらくよりDRYの)解決策は、tables.pyをそのままにして、モデル定義にverbose_nameを追加することです。

#models.py
クラスDashboard(models.Model):
    devenv = models.CharField(max_length = 30、primary_key = True、verbose_name ='開発環境')
    numberofissues = models.BigIntegerField(verbose_name ='Number of Issues')
    クラスメタ:
        managed = False
        db_table ='stability_dashboard'
于 2013-03-27T09:12:42.900 に答える