是否可以为实际的类模型创建一个详细的名称?
class User(models.Model):
fname = models.CharField(max_length=50, verbose_name = 'first name')
因此,在管理面板中,它将通过其详细名称来引用,而不是
'user'
?
class User(models.Model):
fname = models.CharField(max_length=50, verbose_name = 'first name')
class Meta:
verbose_name = "users"
来源:https://docs.djangoproject.com/en/2.1/topics/db/models/#meta-options
verbose_name 和 verbose_name_plural Meta 类的两个属性对于修改 Django 的默认行为以在管理界面上显示我们的模型的名称非常重要。
您可以使用 verbose_name 和 verbose_name_plural 属性以及使用关键字参数 verbose_name 更改模型字段名称 在 管理界面 上的模型名称的显示。
请找到以下2示例。
国家型号:
class Country(models.Model):
name = models.CharField(max_length=100, null=False, blank=False, help_text="Your country", verbose_name="name")
userid = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return f"Country {str(self.id)} - {self.name}"
class Meta:
verbose_name = "Country"
verbose_name_plural = "Countries"
如果您不指定 verbose_name_plural,那么 Django 会将其视为 Countrys,这看起来并不像我们希望的那样好 Countries。
这更适合以下类型的模型。
性别型号:
class Gender(models.Model):
name = models.CharField(max_length=100, null=False, blank=False, help_text="Gender", verbose_name = "name")
userid = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return f"Gender {str(self.id)} - {self.name}"
class Meta:
verbose_name = "Gender"
您也可以向“Meta”类添加“verbose_name_plural”。
要更改管理模型而不污染模型本身,您可以使用代理管理模型,如下所示:
# admin.py
from . import models
class Users(models.User):
class Meta:
proxy = True
class UsersAdmin(admin.ModelAdmin):
...
admin.site.register(Users, UsersAdmin)
ConfigAbility._meta.verbose_name = '配置能力'
ConfigAbility._meta.verbose_name_plural = '配置能力'
我确实探索过这个,但不知道这是否是你需要的东西。我将这些代码放在 Admin.py 的 ConfigAbilityAdmin 类中。然后,结果:
使用这种方法,您不需要在模型类中配置 Meta 方法,特别是当模型类的代码是从检查数据库生成时......