Django站点管理

Posted huanggaoyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django站点管理相关的知识,希望对你有一定的参考价值。

 1.概述

一个网站分为前台(普通用户访问)和管理后台(由网站管理员访问)两部分。
管理后台由网站的管理员负责查看、添加、修改、删除数据,开发这些重复的功能是一件单调乏味、缺乏创造力的工作,为此,Django能够根据定义的模型类自动地生成管理模块 使用Django的管理模块,需要按照如下步骤操作
管理界面本地化
创建管理员
注册模型类
自定义管理页面

2.配置admin

在settinngs.py文件中的INSTALLED_APPS中添加‘django.contrib.admin‘

 技术分享图片

3.创建管理员用户

python manage.py createsuperuser

技术分享图片

4.登录Django站点管理

浏览器地址输入 127.0.0.1:8000/admin

技术分享图片

5.汉化

在settings.py文件中修改

LANGUAGE_CODE = ‘zh-Hans‘
TIME_ZONE = ‘Asia/Shanghai‘

 

技术分享图片

6.修改admin.py文件

from django.contrib import admin
from .models import Grade,Student

admin.site.register(Grade)
admin.site.register(Student) 

 

技术分享图片

7.添加数据

技术分享图片

8.修改models.py

#班级
class Grade(models.Model):
    gname = models.CharField(max_length=20)
    gdate = models.DateField()
    gnum = models.IntegerField()
    isDelete = models.BooleanField(default=False)
    def __str__(self):
        return self.gname

 

技术分享图片

9.列表页显示修改

  • list_display 显示字段
  • list_filter 过滤字段
  • search_fields 搜索字段
  • list_per_page 列表分页

 技术分享图片

 

 10.中文标题

class Student(models.Model):
    sname = models.CharField(max_length=20,verbose_name="学生姓名")
    ......

  

11.添加修改页

class studentAdmin(admin.ModelAdmin):
    # 修改列表页
    list_display = [‘id‘, ‘sname‘, ‘sage‘, ‘sinfo‘, ‘sgrade_id‘,‘isDelete‘]
    list_filter = [‘sgrade_id‘]
    search_fields = [‘sname‘]
    list_per_page = 5
    # 修改添加修改页
    # fields = [‘sname‘,‘sgrade‘, ‘sinfo‘, ‘sage‘, ‘isDelete‘]
    fieldsets = [
        ("学生信息", {"fields": [‘sname‘, ‘sage‘,‘sinfo‘]}),
        ("班级信息", {"fields": [‘sgrade‘]}),
        ("其它信息", {"fields": [‘isDelete‘]}),
    ]
# 注册
admin.site.register(Student,studentAdmin)

  

技术分享图片

12.外键关联

# 关联对象
class Grade_tudent(admin.TabularInline):
    model = Student
    extra = 1

class GradeAdmin(admin.ModelAdmin):
    # 关联对象
    inlines = [Grade_tudent]

 

技术分享图片

13.布尔值显示修改

class studentAdmin(admin.ModelAdmin):
    # 修改布尔类型值显示
    def gender(self):
        if self.sgender:
            return "男"
        else:
            return "女"
    # 修改列表页
    list_display = [‘sname‘,‘sage‘,gender, ‘sinfo‘, ‘sgrade‘,‘isDelete‘]

  

 14.操作选项的位置

# 动作执行的位置
actions_on_top = False
actions_on_bottom = True

 

技术分享图片

15. django-admin后台美化

1)pip安装grappelli

pip install django-grappelli 

2)settings.py中添加

INSTALLED_APPS = (  
      ‘grappelli‘,     #必须在‘django.contrib.admin‘之前
      ‘django.contrib.admin‘,
)  

3)urls.py中添加映射关系

(r‘^grappelli/‘,include(‘grappelli.urls‘)), 

4)settings.py中添加

ADMIN_MEDIA_PREFIX = STATIC_URL + "grappelli/" #把admin的静态文件,由原来的admin目录,改为映射到static目录下的
grapplli.GRAPPELLI_ADMIN_TITLE=‘BBS后台管理系统‘#更改grappellie的登入title

5)静态文件根目录

STATIC_ROOT=BASE_DIR+‘/static/‘  #把静态文件放置于项目文件所在的static文件夹

6)收集静态文件

 python manage.py collectstatic

  

效果预览

技术分享图片

以上是关于Django站点管理的主要内容,如果未能解决你的问题,请参考以下文章

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

使用 Git 来管理 Xcode 中的代码片段

Django REST框架--认证和权限

如何在 Django 中显式重置模板片段缓存?

使用 Django 模板作为片段