本渣渣不专注技术,只专注使用技术,不是一个资深的coder,是一个不折不扣的copier |
Django 中一个最强大的部分是自动管理接口,在模型中读取元数据来提供一个强大的、生产就绪的接口,使内容提供者能立即用它向站点中添加内容,在这篇文档中,我们讨论如何去激活,使用和自定义Django的站点管理接口。
1、创建管理员
我们在浏览器中输入http://127.0.0.1:8000/admin,便可进入到后台管理登录页面,如下图所示:
此时我们还没有创建管理用户,与创建app一样
Tools -> run manage.py task 下执行命令:
$ createsuperuser
然后按照提示依次输入用户名、邮箱、密码、确认密码,即可创建出管理员用户,登录后台,即可。
:
2、注册模型到后台
登录后台后,我们看到此时的后台只有用户、组和最近动作,并没有我们之前创建的我的文章、分类、标签这些内容
我们可以在admin.py中进行配置,将其在后台展现出来:
blog -> storm -> admin.py
from django.contrib import admin from .models import Article, Tag, Category, Carousel, Keyword, FriendLink, BigCategory @admin.register(Article) class ArticleAdmin(admin.ModelAdmin): # 这个的作用是给出一个筛选机制,一般按照时间比较好 date_hierarchy = 'create_date' exclude = ('views',) # 在查看修改的时候显示的属性,第一个字段带有<a>标签,所以最好放标题 list_display = ('id', 'title', 'author', 'create_date', 'update_date') # 设置需要添加<a>标签的字段 list_display_links = ('title',) # 激活过滤器,这个很有用 list_filter = ('create_date', 'category') list_per_page = 50 # 控制每页显示的对象数量,默认是100 filter_horizontal = ('tags', 'keywords') # 给多选增加一个左右添加的框 # 限制用户权限,只能看到自己编辑的文章 def get_queryset(self, request): qs = super(ArticleAdmin, self).get_queryset(request) if request.user.is_superuser: return qs return qs.filter(author=request.user) @admin.register(Tag) class TagAdmin(admin.ModelAdmin): list_display = ('name', 'id', 'slug') @admin.register(Category) class CategoryAdmin(admin.ModelAdmin): list_display = ('name', 'id', 'slug') @admin.register(BigCategory) class BigCategoryAdmin(admin.ModelAdmin): list_display = ('name', 'id', 'slug') # 自定义管理站点的名称和URL标题 admin.site.site_header = '网站管理' admin.site.site_title = '博客后台管理' @admin.register(Carousel) class CarouselAdmin(admin.ModelAdmin): list_display = ('number', 'title', 'content', 'img_url', 'url') @admin.register(Keyword) class KeywordAdmin(admin.ModelAdmin): list_display = ('name', 'id') @admin.register(FriendLink) class FriendLinkAdmin(admin.ModelAdmin): list_display = ('name', 'description', 'link', 'create_date', 'is_active', 'is_show') date_hierarchy = 'create_date' list_filter = ('is_active', 'is_show')
此时,再次刷新博客admin页面,即可看到我们创建的表: 我们可以对其进行增加、修改、删除操作。
现在我们开始写第一篇博客,保存之后,进入到 navicat 中 article 表中,可以看到多出一个数据,这就是我们刚添加的第一篇博客。是不是很方便呢,admin 也是 Django 中最方便的一个特性了。
推荐学习:DJANGO ADMIN 一些有用的设置
虽然 admin.py 功能还可以但是我不太喜欢,后期会根据自己的习惯设计一个发文界面
————————————————————————————————————————————————————————————————————————————————————
转载请注明: StormSha » Django个人博客开发七 | 通过admin管理后台