python - Django - 在 ModelForm 中覆盖 Field 的表单时如何不丢失 verbose_name 和 Field 的其他属性?

标签 python django

给定:

#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 中删除覆盖字段 - 将照常显示详细名称。如果提供带有描述的字符串作为参数 labelforms.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/

相关文章:

Python,正则表达式,提取大括号内的分组电子邮件

python - 如何使用 reduce/map/list comprehension 求和?

python - 从幅度或 FFT 到 dB

django - 如何在 Django 中创建一个 'fill in the blanks' 表单

django - 无法访问静态资源

python - 查询中的 Django 问题

javascript - 使用 ajax 运行 python 脚本

python - python中的mongo查询

sql - 为什么我无法删除具有相关对象的模型实例?

python - 使用来自 mercurial python hook 的 Django 模型