django自定义admin表头显示

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013967628/article/details/83626718

默认情况下,Django 显示每个对象的 str() 返回的值。

如果想显示多个值,并且按照一定顺序则需要

from django.contrib import admin
from .models import BlogType, Blog

@admin.register(Blog)
class BlogAdmin(admin.ModelAdmin):
    list_display = ('id', 'title', 'blog_type', 'author', 'get_read_num', 'created_time', 'last_updated_time')

如此则显示定义的这些字段,但是表头中都是默认显示的字段的定义名,如果想自定义表头,则修改model.py中字段的verbose_name

class Blog(models.Model, ReadNumExpandMethod):
    title = models.CharField(max_length=50,verbose_name="标题")
    blog_type = models.ForeignKey(BlogType, on_delete=models.CASCADE,verbose_name="分类")
    content = RichTextUploadingField()
    author = models.ForeignKey(User, on_delete=models.CASCADE,verbose_name="作者")
    read_details = GenericRelation(ReadDetail)
    created_time = models.DateTimeField(auto_now_add=True,verbose_name="创建时间")
    last_updated_time = models.DateTimeField(auto_now=True,verbose_name="上次更新时间")    

其次修改外部模块的名字

需在model中添加

最后修改app名字

需修改在对应app的apps.py中添加

from django.apps import AppConfig

class BlogConfig(AppConfig):
    name = 'blog'
    verbose_name = '博客管理'

还有在init.py中对应添加

default_app_config = 'blog.apps.BlogConfig'

如果想要修改外键引入,或者内联进来的字段名则需要如下方式修改

class UserAdmin(admin.ModelAdmin):
    inlines = [ProfileInline]
    list_display = ('username', 'nickname', 'email', 'is_staff', 'is_active', 'is_superuser')

    def nickname(self, obj):
        return obj.profile.nickname #自定义字段显示信息

    nickname.short_description = '昵称' #字段描述

猜你喜欢

转载自blog.csdn.net/u013967628/article/details/83626718