标签:alt 包括 效果 stack sea 管理 book 点击 script
内容发布的部分由网站的管理员负责查看、添加、修改、删除数据,开发这些重复的功能是一件单调乏味、缺乏创造力的工作,为此,Django能够根据定义的模型类自动地生成管理模块,在Django项目中默认启用Admin管理站点准备工作:创建管理员的用户名和密码。
按提示填写用户名、邮箱、密码
使用:在应用的admin.py中注册模型类例,打开booktest/admin.py文件,注册地区模型
输入如下网址
按提示填写用户名、密码,点击“Log in”按钮登录
登录成功后,可以看到AreaInfos,可以进行增加、修改、删除、查询的管理
列表页显示效果如下图:
管理类有两种使用方式
注册参数:打开booktest/admin.py文件,注册模型类代码如下
admin.site.register(AreaInfo,AreaAdmin)
装饰器:打开booktest/admin.py文件,在管理类上注册模型类,代码如下
接下来介绍如何控制列表页、增加修改页展示效果:
list_per_page=100
打开booktest/admin.py文件,修改AreaAdmin类如下:
class AreaAdmin(admin.ModelAdmin): list_per_page = 10
在浏览器中查看区域信息的列表页面,效果如下图
actions_on_top=True
actions_on_bottom=False
打开booktest/admin.py文件,修改AreaAdmin类如下
class AreaAdmin(admin.ModelAdmin):
...
actions_on_top = True
在浏览器中刷新效果如下图:
list_display=[模型字段1,模型字段2,...]
class AreaAdmin(admin.ModelAdmin): ... list_display = [‘id‘,‘atitle‘]
在浏览器中刷新效果如下图:
点击列头可以进行升序或降序排列
class AreaInfo(models.Model): ... def title(self): return self.atitle
打开booktest/admin.py文件,修改AreaAdmin类如下
class AreaAdmin(admin.ModelAdmin): ... list_display = [‘id‘,‘atitle‘,‘title‘]
在浏览器中刷新效果如下图
admin_order_field=模型类字段
打开booktest/models.py文件,修改AreaInfo类如下
class AreaInfo(models.Model): ... def title(self): return self.atitle title.admin_order_field=‘atitle‘
在浏览器中刷新效果如下图
short_description=‘列标题‘
打开booktest/models.py文件,修改AreaInfo类如下
class AreaInfo(models.Model): ... title.short_description=‘区域名称‘
class AreaInfo(models.Model): ... title.short_description=‘区域名称‘
在浏览器中刷新效果如下图
打开booktest/admin.py文件,修改AreaAdmin类如下
class AreaAdmin(admin.ModelAdmin): ... list_display = [‘id‘,‘atitle‘,‘title‘,‘parent‘]
在浏览器中刷新效果如下图
list_filter=[]
class AreaAdmin(admin.ModelAdmin): ... list_filter=[‘atitle‘]
在浏览器中刷新效果如下图
search_fields=[]
class AreaAdmin(admin.ModelAdmin): ... search_fields=[‘atitle‘]
在浏览器中刷新效果如下图
class AreaInfo(models.Model): atitle=models.CharField(‘标题‘,max_length=30)#名称
在浏览器中刷新效果如下图
fields=[]
打开booktest/admin.py文件,修改AreaAdmin类如下
class AreaAdmin(admin.ModelAdmin):
...
fields=[‘aParent‘,‘atitle‘]
刷新浏览器效果如下图
class AreaInfo(models.Model):
...
def __str__(self):
return self.atitle.encode(‘utf-8‘) # python2的写法,python3不要转码
刷新浏览器效果如下图
fieldsets=(
(‘组1标题‘,{‘fields‘:(‘字段1‘,‘字段2‘)}),
(‘组2标题‘,{‘fields‘:(‘字段3‘,‘字段4‘)}),
)
打开booktest/admin.py文件,修改AreaAdmin类如下
class AreaAdmin(admin.ModelAdmin):
...
# fields=[‘aParent‘,‘atitle‘]
fieldsets = (
(‘基本‘, {‘fields‘: [‘atitle‘]}),
(‘高级‘, {‘fields‘: [‘aParent‘]})
)
刷新浏览器效果如下图
说明:fields与fieldsets两者选一使用
class AreaStackedInline(admin.StackedInline):
model = AreaInfo#关联子对象
extra = 2#额外编辑2个子对象
打开booktest/admin.py文件,修改AreaAdmin类如下
class AreaAdmin(admin.ModelAdmin):
...
inlines = [AreaStackedInline]
刷新浏览器效果如下图
class AreaTabularInline(admin.TabularInline):
model = AreaInfo#关联子对象
extra = 2#额外编辑2个子对象
打开booktest/admin.py文件,修改AreaAdmin类如下
class AreaAdmin(admin.ModelAdmin): ... inlines = [AreaTabularInline]
刷新浏览器效果如下图
/home/python/.virtualenvs/py_django/lib/python2.7/site-packages/django/contrib/admin/templates/admin
将需要更改文件拷贝到第一步建好的目录里,此处以base_site.html为例
编辑base_site.html文件
在浏览器中转到列表页面,刷新后如下图
其它后台的模板可以按照相同的方式进行修改
标签:alt 包括 效果 stack sea 管理 book 点击 script
原文地址:http://www.cnblogs.com/crazymagic/p/7661740.html