登录        注册
本站基于Django开发,源码 Github 欢迎 Fork、Star。由于站点升级导致评论区留言信息丢失,欢迎前来发表新的评论

Django个人博客开发七 | 通过admin管理后台

Django stormsha 2405浏览 204喜欢 0评论
本渣渣不专注技术,只专注使用技术,不是一个资深的coder,是一个不折不扣的copier

Django 中一个最强大的部分是自动管理接口,在模型中读取元数据来提供一个强大的、生产就绪的接口,使内容提供者能立即用它向站点中添加内容,在这篇文档中,我们讨论如何去激活,使用和自定义Django的站点管理接口。

1、创建管理员

我们在浏览器中输入http://127.0.0.1:8000/admin,便可进入到后台管理登录页面,如下图所示:

20301

此时我们还没有创建管理用户,与创建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页面,即可看到我们创建的表: 20302 我们可以对其进行增加、修改、删除操作。

现在我们开始写第一篇博客,保存之后,进入到 navicat 中 article 表中,可以看到多出一个数据,这就是我们刚添加的第一篇博客。是不是很方便呢,admin 也是 Django 中最方便的一个特性了。

推荐学习:DJANGO ADMIN 一些有用的设置

20303 虽然 admin.py 功能还可以但是我不太喜欢,后期会根据自己的习惯设计一个发文界面

————————————————————————————————————————————————————————————————————————————————————

转载请注明: StormSha » Django个人博客开发七 | 通过admin管理后台

发表我的评论

表情
(0)个小伙伴在吐槽|0条评论
暂时没有评论,欢迎来尬聊!