Django提供了admin.ModelAdmin类
通过定义ModelAdmin的子类,来定义模型在Admin界面的显示方式
from django.contrib import admin
from .models import Book,Hero
# Register your models here.
class BookAdmin(admin.ModelAdmin):
# list_display:显示字段,可以点击列头进行排序
list_display = [‘id’, ‘title’, ‘pub_date’]
# list_filter:过滤字段,过滤框会出现在右侧
list_filter = [‘title’]
# search_fields:搜索字段,搜索框会出现在上侧
search_fields = [‘title’]
# list_per_page:分页,分页框会出现在下侧
list_per_page = 2
admin.site.register(Book,BookAdmin)
admin.site.register(Hero)
from django.contrib import admin
from .models import Book,Hero
class HeroInline(admin.StackedInline):
model = Hero
# 关联个数
extra = 1
class BookAdmin(admin.ModelAdmin):
# list_display:显示字段,可以点击列头进行排序
list_display = [‘id’, ‘title’, ‘pub_date’]
# list_filter:过滤字段,过滤框会出现在右侧
list_filter = [‘title’]
# search_fields:搜索字段,搜索框会出现在上侧
search_fields = [‘title’]
# list_per_page:分页,分页框会出现在下侧
list_per_page = 2
# 再添加书的时候可以额外添加英雄
inlines = [HeroInline]
class HeroAdmin(admin.ModelAdmin):
list_display = [‘id’, ‘name’, ‘gender’,‘content’]
# list_filter:过滤字段,过滤框会出现在右侧
list_filter = [‘name’]
# search_fields:搜索字段,搜索框会出现在上侧
search_fields = [‘name’]
# list_per_page:分页,分页框会出现在下侧
list_per_page = 2
admin.site.register(Book,BookAdmin)
admin.site.register(Hero,HeroAdmin)
比如想要将hcontent改为英雄技能
第一步在HeroInfo类中定义函数
def skill(self):
return self.content
skill.short_description = ‘英雄技能’
第二步在HeroAdmin中修改显示
list_display = [‘id’, ‘name’, ‘gender’,‘skill’]
from django.contrib import admin
# Register your models here.
# django自带的后台管理操作需要在此处实现
# 注册自己需要管理的模型 Book Hero
from .models import Book,Hero
from django.contrib import admin
from django.contrib.admin import ModelAdmin
class HeroInline(admin.StackedInline):
"""
定义关联类
"""
model = Hero
extra = 1
class HeroAdmin(ModelAdmin):
"""
定义模型管理类
通过该类可以修改后台页面
"""
# 更改后端显示列
list_display = ('name', 'gender', 'book')
# 每页显示一个 分页会出现在下侧
list_per_page = 5
# 定义搜索字段 (包含标题 价格) 搜索框会出现在上侧
search_fields = ('name', 'gender')
# 指定过滤字段 过滤框会出现在右侧
list_filter = ('name', 'gender', 'book')
class BookAdmin(ModelAdmin):
"""
定义模型管理类
通过该类可以修改后台页面
"""
# 更改后端显示列
list_display = ('title','price','pub_date')
# 每页显示一个
list_per_page = 10
# 定义搜索字段 (包含标题 价格)
search_fields = ('title','price')
# 指定过滤字段
list_filter = ('title','price','pub_date')
# 通过指定关联类进行关联
inlines = [HeroInline]
admin.site.register(Book, BookAdmin)
admin.site.register(Hero, HeroAdmin)
在django中,视图对WEB请求进行回应
视图接收reqeust对象作为第一个参数,包含了请求的信息,改参数必不可少,后面可根据需求添加
视图函数就是一个Python函数,被定义在views.py中
from django.http import HttpResponse
def index(request):
return HttpResponse(“index”)
def detail(request,id):
return HttpResponse(“detail %s” % id)
定义完成视图后,需要配置urlconf,否则无法处理请求
在Django中,定义URLconf包括正则表达式、视图两部分
Django使用正则表达式匹配请求的URL,一旦匹配成功,则调用应用的视图
注意:只匹配路径部分,即除去域名、参数后的字符串
在test1/urls.py插入booktest,使主urlconf连接到booktest.urls模块
urlpatterns列表中来配置 url,每一个列表项就是一个由url函数的调用。
一个project中如果有多个app,为避免url管理可能的混乱,在项目的urls.py用include方法包含myapp中的urls。
1.在主路由内添加应用的路由
2.在应用booktest目录下,创建urls.py文件 模仿主文件下的urls.py 进行如下编写。
3.在views.py文件内写入视图函数。
4.打开服务器后,进入匹配好的路由,查看结果。