[TOC]
修改列表頁樣式
## 添加樣式
### 1. 每頁數據條數
`list_per_page` 選項設置每頁數據的條數,默認每頁100條數據。
例:修改每頁顯示3條數據
```python
@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
list_per_page = 3
```
顯示效果:

### 2. 操作選項的位置
`actions_on_top` 設置操作選項是否在頂部顯示,默認為 `True`
```
actions_on_top = True
```
`actions_on_bottom` 設置操作選項是否在頂部顯示,默認為 `False`
```
actions_on_top = False
```
例:修改操作選項到下邊
```python
@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
...
actions_on_top = False
actions_on_bottom = True
```
顯示效果:

### 3. 列表中的列顯示
`list_display` 選項設置顯示的列
格式如下
```
list_display = [列1, 列2]
```
例:顯示書籍的id,標題,發布日期
```python
@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
list_display = ['id', 'b_title', 'b_pub_date']
```
顯示效果:

### 4. 將方法作為列
列不僅可以是字段,也可以是方法,要求方法必須有返回值。
例:使用方法列在后臺顯示閱讀次數
1. 在 `Book` 模型類中添加代碼
```python
class Book(models.Model):
...
def read(self):
return '%s 次' % self.b_read
read.short_description = "閱讀次數"
read.admin_order_field = 'b_read'
```
- `short_description` 屬性設置該方法在admin站點中顯示的名字,類似字段的 `verbose_name` 屬性。
- `admin_order_field` 設置方法列可排序,格式如下
```
方法名.admin_order_field = '字段名'
```
2. 添加顯示列
```python
@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
list_display = ['id', 'b_title', 'b_pub_date', 'read']
```
顯示效果:

### 5 訪問關聯對象
可以使用方法獲得被關聯對象數據,并顯示。
例:在角色頁面顯示關聯圖書閱讀次數
1. 修改 `Role` 模型類
```python
def read(self):
return '%s 次' % self.r_book.b_read
read.short_description = "閱讀次數"
```
2. 添加顯示列
```python
@admin.register(Role)
class RoleAdmin(admin.ModelAdmin):
list_display = ['id', 'r_name', 'r_book', 'read']
```
顯示效果:

### 6. 過濾器
`list_filter` 屬性用于在右側顯示過濾器,會把有重復值的數據過濾出來,方便快速選擇。
語法格式:
```
list_filter=[字段1, 字段2]
```
例:使用書名和性別過濾角色
```python
@admin.register(Role)
class RoleAdmin(admin.ModelAdmin):
list_filter = ['r_book', 'r_gender']
```
顯示效果:

### 7. 搜索框
顯示搜索框,用于對指定的字段進行搜索,支持模糊查詢。
語法如下:
```
search_fields=[]
```
例:使用角色名字搜索
```python
@admin.register(Role)
class RoleAdmin(admin.ModelAdmin):
search_fields = ['r_name']
```

- 1.介紹
- 2.工程搭建
- 2.1.環境配置
- 2.2.創建工程
- 2.3.創建子應用
- 2.3.1.pycharm打開項目
- 2.4.創建視圖
- 3.基本配置
- 3.1.settings基本配置項
- 3.2.路由配置
- 4.請求響應
- 4.1.request
- 4.2.response
- 4.3.cookie
- 4.4.session
- 5.類視圖中間件
- 5.1.類視圖
- 5.2中間件
- 6.數據庫
- 6.1.數據庫配置
- 6.2定義模型類
- 6.3數據庫遷移
- 6.4數據庫操作
- 6.5查詢集
- 6.6模型管理器
- 7.模板表單
- 7.1使用模板
- 7.2模板標簽
- 7.3表單
- 8.后臺管理
- 8.1Admin
- 8.2自定義模型類樣式
- 8.3列表頁