2

与えられた:

#models.py
from django.db import models


class MyModel(models.Model):
    myfield = models.IntegerField('Detailed description')

#forms.py
from django import forms
from models import MyModel

class MyModelForm(forms.ModelForm):
    myfield = forms.IntegerField()


class Meta:
    model = MyModel

この設定では、verbose_name は管理ページに表示されず、代わりにフィールド名が表示されます (最初の文字が大文字になります)。MyModelForm からオーバーライド フィールドを削除すると、通常どおり冗長な名前が表示されます。引数として説明付きの文字列を指定するlabelと、forms.IntegerField()- 管理ページに表示されます。ヒント
を使用せずに、このフィールドフォームがModelFormでオーバーライドされた場合に備えて、モデルクラスで定義されたverbose_nameを表示するpythonicの方法を探しています。label

何かご意見は?

4

1 に答える 1

5

次のような形式でモデルの詳細な名前にアクセスできます。

myfield = models.IntegerField(label=MyModel._meta.get_field_by_name('myfield')[0].verbose_name)
于 2013-05-24T18:02:51.360 に答える