鉴于:
#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
Run Code Online (Sandbox Code Playgroud)
使用此设置 - 将不会在管理页面上显示verbose_name,而是使用字段名称(带大写的第一个字母).如果从MyModelForm中删除覆盖字段 - 详细名称将照常显示.如果提供带有描述的字符串作为参数label,forms.IntegerField()它将显示在管理页面上.
我正在寻找pythonic方法来显示在模型类中定义的verbose_name,以防这个字段形式在ModelForm中被覆盖,而不使用label提示.
有什么想法吗?
您可以使用以下格式访问模型的详细名称:
myfield = models.IntegerField(label=MyModel._meta.get_field_by_name('myfield')[0].verbose_name)
Run Code Online (Sandbox Code Playgroud)