admin自定义,使用函数,返回要显示的内容

 
使用函数,返回要显示的内容,如效果图

models.py文件

tags 函数,
class Article(models.Model):
    """文章表"""
    title = models.CharField(max_length=255,unique=True,verbose_name="标题" )
    content = models.TextField(verbose_name="文章内容",null=True)
    account = models.ForeignKey("Account",verbose_name="作者",on_delete=models.CASCADE)
    tag = models.ManyToManyField("Tag",verbose_name="标签",blank=True)
    pub_date = models.DateTimeField(verbose_name="发布时间")
    read_count = models.IntegerField(default=0,verbose_name="阅读量")
    def tags(self):
        return ','.join([i.name for i in self.tag.all()])  #通过生成器,和字符串拼接函数join

  


admin.py
from django.contrib import admin
from app01 import models
# Register your models here.
class AccountAdmin(admin.ModelAdmin):
    search_fields = ['username',]
    list_display = ('username','email','signature')
    list_per_page = 3
    list_display_links = ('email','username')
    list_editable = ['signature',]


class ArticleAdmin(admin.ModelAdmin):
    list_display = ('title','account','read_count','tags')#显示出def tags的返回值
    search_fields = ('title','content')
    #list_filter = ('tag',)
    #fields = ('title','content',('pub_date','read_count'),)
    #exclude = ('pub_date',)
    #date_hierarchy = 'pub_date'

    fieldsets = (
        ('文章相关',{
            'fields':
            ['title','content'],
            'classes': ('wide', 'extrapretty','collapse'),
        }),
        ('发布相关',{
           # 'classes':('collapse',),
            'fields':
         ['account',('pub_date','read_count'),'tag']
        })
    )
    #radio_fields = {'account':admin.HORIZONTAL}
    autocomplete_fields = ['account',]
    #raw_id_fields = ['account',]
    readonly_fields = ['read_count',]
    filter_horizontal = ('tag',)
    #filter_vertical = ('tag',)
admin.site.register(models.Account,AccountAdmin)
admin.site.register(models.Tag)
admin.site.register(models.Article,ArticleAdmin)

  

猜你喜欢

转载自www.cnblogs.com/a10086/p/9292336.html
今日推荐