Django网站(四):博客APP——admin管理页面编写
在完成了blog的model设计之后,我打算首先完成admin管理页面。需要管理的三个model是分类(Category)、文章(Article)和资源(Resource)。
管理页面简介
每个model的管理页面主要有两种形式:一是model下所有记录的列表页面,而是某一条记录的详情页面。只要将一个model注册到admin,这两个页面就会自动建立。将model注册到admin的方法有两种:装饰器和注册函数。我更偏爱装饰器的写法,另一种写法请阅读Django admin site官方文档。
from django.contrib import admin
from .models import Article
@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
pass
如上图就完成了model的注册。通过在ArticleAdmin类中设置各种类属性、重写类方法,可以调整列表页面和详情页面的表现。我在这里只讨论对我有用的一些设置,其他设置请阅读Django admin site官方文档。
列表页面
![](https://img.haomeiwen.com/i8280446/2cf14653b9792c72.png)
如图所示,列表页面主要有三块元素:action(图中1)、list(图中2)和filter(图中3)。接下来我会介绍这三块的功能和相关设置。
list
这是列表页面的主体部分。它显示了model下的一部分记录。和这一部分相关的类属性、类方法如以下两表所示。
属性 | 变量类型 | 说明 |
---|---|---|
list_display | list[str] | 哪些字段会被显示在列表中 |
list_select_related | list[str] | 通过ForeignKey等获取的字段 |
list_editable | list[str] | 哪些字段可以在列表页面中直接编辑 |
list_display_links | list[str] | 哪些字段在点击后可以跳转到对应的详情页面 |
方法 | 参数 | 说明 |
---|---|---|
get_queryset | request | 动态控制哪些记录会显示出来,通常与权限控制结合 |
get_list_display | request | 动态控制哪些字段会显示出来,通常与list_display结合 |
网友评论