django中管理模型类的详细名称

Dav*_*542 14 django django-models django-admin

是否可以为实际的Class模型创建详细的名称?

class User(models.Model):
    fname = models.CharField(max_length=50, verbose_name = 'first name')
Run Code Online (Sandbox Code Playgroud)

所以在管理面板中,它的详细名称将引用它而不是'user'

sol*_*tic 33

class User(models.Model):
    fname = models.CharField(max_length=50, verbose_name = 'first name')

    class Meta:
         verbose_name = "users"
Run Code Online (Sandbox Code Playgroud)

来源:https://docs.djangoproject.com/en/2.1/topics/db/models/#meta-options


hyg*_*ull 12

verbose_nameverbose_name_plural这两个Meta类的属性对于修改 Django 的默认行为以在管理界面上显示我们模型的名称非常重要。

您可以使用verbose_nameverbose_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 "Country " + str(self.id) + " - " + self.name

    class Meta:
        verbose_name = "Country"
        verbose_name_plural = "Countries"
Run Code Online (Sandbox Code Playgroud)

如果你不指定verbose_name_plural那么Django会以之为,因为我们希望它看起来并不好国家

这更适合以下类型的Model

性别模型:

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 "Gender " + str(self.id) + " - " + self.name

    class Meta:
        verbose_name = "Gender"
Run Code Online (Sandbox Code Playgroud)


gle*_*ant 6

您也可以在“ Meta”类中添加“ verbose_name_plural”。


leh*_*ang 6

要更改管理模型而不污染模型本身,您可以使用代理管理模型,如下所示:

# admin.py
from . import models

class Users(models.User):
    class Meta:
        proxy = True

class UsersAdmin(admin.ModelAdmin):
    ...


admin.site.register(Users, UsersAdmin)
Run Code Online (Sandbox Code Playgroud)