给定:
#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()
- 它将显示在管理页面上。
我正在寻找 pythonic 方法来显示模型类中定义的 verbose_name ,以防该字段表单在 ModelForm 中被覆盖,而不使用 label
提示。
有什么想法吗?
最佳答案
您可以通过如下形式访问模型的详细名称:
myfield = models.IntegerField(label=MyModel._meta.get_field_by_name('myfield')[0].verbose_name)
关于python - Django - 在 ModelForm 中覆盖 Field 的表单时如何不丢失 verbose_name 和 Field 的其他属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16739960/