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_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 "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)
要更改管理模型而不污染模型本身,您可以使用代理管理模型,如下所示:
# 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)
| 归档时间: |
|
| 查看次数: |
14162 次 |
| 最近记录: |