python - 如何在 Django 中停止自动大写 verbose_name

标签 python django django-models

如何防止 Django 在模型中自动大写 verbose_name?例如:

class TestModel(models.Model):
    enb_id = models.IntegerField(null=True, verbose_name="eNB ID", blank=True)

我想自己处理大写并在网站的任何地方显示“eNB ID”而不是“ENB ID”。

最佳答案

似乎 Django capitalizes the first letter when setting the form field for that model field :

...
defaults = {
    'required': not self.blank,
    'label': capfirst(self.verbose_name),
    'help_text': self.help_text
}

您可以创建自己的自定义模型字段来覆盖 capfirst(通过将标签作为 kwarg 传递):

from django.db import models
class UpcappedModelField(models.Field):

    def formfield(self, form_class=forms.CharField, **kwargs):
        return super(UpcappedModelField, self).formfield(form_class=forms.CharField, 
                         label=self.verbose_name, **kwargs)

关于python - 如何在 Django 中停止自动大写 verbose_name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9000063/

相关文章:

Python多重继承

python - Django with MySQL : DatabaseError (1406, "Data too long for column ' name' at row 1")

python - 在 Django admin 中显示 ManyToMany 关系的双方

python - 将数据从 post() 传递到 get_context_data()

python - Django 中的实时搜索

Python subprocess.Popen - 添加 GCcflags导致 "no input files"错误

python - 迁移后Django表不存在

python - ModuleNotFoundError : No module named 'keras.backend.tensorflow_backend'

python - 如何检查 Django 1.3 项目是否也与 Django 1.6 兼容

python - 如何在基于类的 View 中使用 django-paypal