本渣渣不专注技术,只专注使用技术,不是一个资深的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管理后台