4

フィールドに関する同様の質問がありますverbose_namedjangoでverbose_nameの自動大文字化を停止する方法

管理者インデックスページにアプリの利用可能なモデルを一覧表示する場合、Djangoは常にモデルの最初の文字を大文字にverbose_name_pluralして、モデルの名前として使用します。

django.contrib.admin.sites.pyのコードは次のとおりです。

model_dict = {
    'name': capfirst(model._meta.verbose_name_plural),
    'perms': perms,
}

ただし、次のスクリーンショットを検討してください。「VCenters」ではなく「vCenters」を表示したいと思います。

を削除しcapfirst、他のモデルを明示的に大文字verbose_name_pluralにして機能させることができます。

しかし、私はdjangoのソースコードを変更する必要があり、それはDjangoのバグではないようです。より良い解決策はありますか?

4

1 に答える 1

0

そんなに簡単じゃない…。

  • admin/index.htmlテンプレートのコピーをtemplate/admin/index.htmlに作成します
  • 独自のテンプレートフィルターを作成します:独自のtemplatetags/my_special_thing.pyディレクトリにlowerfirst_if_starts_with_v

'

@register.filter(is_safe=True)
@stringfilter
def lowerfirst_if_starts_with_v(value):
    """Lowercase the first character of the value."""
    return value and value[0] =='v' and value[0].lower() + value[1:]
  • index.htmlにロードします

'

{%load my_special_thing%}
  • 23行目のindex.htmlに適用します

'

<th scope="row"><a href="{{ model.admin_url }}"> \
{{ model.name|lowerfirst_if_starts_with_v }}</a></th>

完了しました

于 2012-09-07T12:28:52.867 に答える