Django admin的常用方法

一、HTTP

1、主页面

http://127.0.0.1:8000/admin/

2、查询页面

http://127.0.0.1:8000/admin/app01/book/

3、增加页面

http://127.0.0.1:8000/admin/app01/book/add/

4、修改页面

http://127.0.0.1:8000/admin/app01/book/1/change/

5、删除页面

http://127.0.0.1:8000/admin/app01/book/1/delete/

二、配置

1、定义一个类

class BookConfig(admin.ModelAdmin):
    pass
    

2、引用

admin.site.register(models.Book, BookConfig)

三、常用方法

1、list_display

list_display = ["title", "price", "publishDate", "publisher"]

作用:显示指定字段

注意:可以使用多对一字段,不能使用多对多字段

使用多对多字段报错

<class 'app01.admin.BookConfig'>: (admin.E109) The value of 'list_display[4]' must not be a ManyToManyField

自定义display

# 信任标签
from django.utils.safestring import mark_safe


class BookConfig(admin.ModelAdmin):
    # 自定义display
    def deletes(self):
        # return "删除"
        return mark_safe("<a>删除</a>")
    list_display = ["title", "publishDate", "price", "publish", deletes]

2、list_display_links

class BookConfig(admin.ModelAdmin):
    list_display = ["title", "price", "publishDate", "publisher"]
    list_display_links = ["title", "price", "publishDate", "publisher"]

作用:设置link,进入修改页面

注意:list_display_links 不能设置 list_display没有定义的内容

 3、list_filter

作用:添加根据字段进行 filter的功能

list_filter = ["price", "publisher"]

4、list_editable

作用:在查看页面直接编辑字段

注意:the value of 'title' cannot be in both 'list_editable' and 'list_display_links'

list_editable = ["title"]

5、search_fields

作用:模糊索引

注意:字段与字段之间是或的关系

6、actions

作用:批量操作

# queryset相对于页面前面的checkbox
def bath(self, request, queryset):
    queryset.update(price=66.88)
bath.short_description = "批量修改价格"
actions = [bath].

 

posted @ 2019-08-16 18:01  市丸银  阅读(1306)  评论(0编辑  收藏  举报