自定义列表


对象显示

classAuthor(models.Model):first_name=models.CharField(max_length=30)last_name=models.CharField(max_length=40)email=models.EmailField(blank=True,verbose_name='e-mail')def__unicode__(self):#显示的方式returnu'%s%s'%(self.first_name,self.last_name)

作者列表

fromdjango.contribimportadminfrommysite.books.modelsimportPublisher,Author,BookclassAuthorAdmin(admin.ModelAdmin):#用AuthorAdmin选项注册Author模块list_display=('first_name','last_name','email')############################admin.site.register(Publisher)admin.site.register(Author,AuthorAdmin)#admin.site.register()函数接受一个ModelAdmin子类作为第二个参数。admin.site.register(Book)




添加一个快速查询栏

classAuthorAdmin(admin.ModelAdmin):list_display=('first_name','last_name','email')search_fields=('first_name','last_name')#过滤的依据#############

为Book列表页添加一些过滤器

fromdjango.contribimportadminfrommysite.books.modelsimportPublisher,Author,BookclassAuthorAdmin(admin.ModelAdmin):list_display=('first_name','last_name','email')search_fields=('first_name','last_name')classBookAdmin(admin.ModelAdmin):list_display=('title','publisher','publication_date')list_filter=('publication_date',)#########################admin.site.register(Publisher)admin.site.register(Author,AuthorAdmin)admin.site.register(Book,BookAdmin)


一种过滤日期的方式是使用date_hierarchy选项

classBookAdmin(admin.ModelAdmin):list_display=('title','publisher','publication_date')list_filter=('publication_date',)date_hierarchy='publication_date'#请注意,date_hierarchy接受的是*字符串*,而不是元组。

改变默认的排序方式

classBookAdmin(admin.ModelAdmin):list_display=('title','publisher','publication_date')list_filter=('publication_date',)date_hierarchy='publication_date'ordering=('-publication_date',)#按publicationdate降序排列小箭头显示排序



自定义编辑表单

classBookAdmin(admin.ModelAdmin):list_display=('title','publisher','publication_date')list_filter=('publication_date',)date_hierarchy='publication_date'ordering=('-publication_date',)fields=('title','authors','publisher','publication_date')#fields内表示可编辑的我们可以隐藏publication_date,以防止它被编辑。如:fields=('title','authors','publisher')#这里的顺序会影响显示的顺序




filter_horizontal

classBookAdmin(admin.ModelAdmin):list_display=('title','publisher','publication_date')list_filter=('publisher',)date_hierarchy='publication_date'ordering=('-publication_date',)fields=('authors','title','publisher','publication_date')##这个是顺序,翻译说要移除,原文明明是提醒读者不要移除filter_horizontal=('authors',)###########################publisher一定要在fields中



选择框

classBookAdmin(admin.ModelAdmin):...raw_id_fields=('publisher',)#######这条语句将默认是下拉框的变成文本框(旁边的放大镜可弹框选择)