使用函数,返回要显示的内容,如效果图
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)