自定义列表
对象显示
class Author(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): # 显示的方式
return u'%s %s' % (self.first_name, self.last_name)
作者列表
from django.contrib import admin
from mysite.books.models import Publisher, Author, Book
class AuthorAdmin(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)
添加一个快速查询栏
class AuthorAdmin(admin.ModelAdmin):
list_display = ('first_name', 'last_name', 'email')
search_fields = ('first_name', 'last_name') # 过滤的依据 #############
为Book列表页添加一些过滤器
from django.contrib import admin
from mysite.books.models import Publisher, Author, Book
class AuthorAdmin(admin.ModelAdmin):
list_display = ('first_name', 'last_name', 'email')
search_fields = ('first_name', 'last_name')
class BookAdmin(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选项
class BookAdmin(admin.ModelAdmin):
list_display = ('title', 'publisher', 'publication_date')
list_filter = ('publication_date',)
date_hierarchy = 'publication_date' # 请注意,date_hierarchy接受的是* 字符串* ,而不是元组。
改变默认的排序方式
class BookAdmin(admin.ModelAdmin):
list_display = ('title', 'publisher', 'publication_date')
list_filter = ('publication_date',)
date_hierarchy = 'publication_date'
ordering = ('-publication_date',) # 按publication date降序排列 小箭头显示排序
自定义编辑表单
class BookAdmin(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
class BookAdmin(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 中
选择框
class BookAdmin(admin.ModelAdmin):
...
raw_id_fields = ('publisher',) ####### 这条语句将默认是下拉框的变成文本框(旁边的放大镜可弹框选择)
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。