django 后台 admin

Posted zhuodong

tags:

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

知易行难,知易行难。前思后想一完言,后觉不如不言。南无阿弥陀佛。

主要功能

  功能1:提供数据库管理功能

    基于admin模块,可以实现类似数据库客户端的功能,对数据进行增删改查

  功能2:二次开发

    基于该模块的数据管理功能,可以二次定制一些实用的功能。

步骤1:在settings.py中,INSTALLED_APPS中,加入django.contrib.admin

1
2
3
4
5
6
7
INSTALLED_APPS = [
    ‘django.contrib.admin‘,
    ‘django.contrib.auth‘,   #admin依赖
    ‘django.contrib.contenttypes‘#admin依赖
    ‘django.contrib.sessions‘,  #admin依赖
     ......   
]

步骤2:urls.py创建admin路由

1
2
3
4
5
6
from django.contrib import admin
 
urlpatterns = [
    url(r‘^admin/‘, admin.site.urls),
    ....  
]

步骤3:在settings.py配置文件中,中间件注册

1
2
3
4
5
6
MIDDLEWARE = [
    ‘django.contrib.sessions.middleware.SessionMiddleware‘,
    ‘django.middleware.common.CommonMiddleware‘,
    ‘django.contrib.auth.middleware.AuthenticationMiddleware‘,
    ....
]

步骤4:创建admin管理用户

1
python manage.py createsuperuser

步骤5:在app 的models.py文件中创建表信息,即表类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from django.db import models
 
 
class Gender(models.Model):
    name = models.CharField(max_length=32)
 
class userinfo(models.Model):
    nid = models.AutoField(primary_key=True)
    name = models.CharField(max_length=30, verbose_name=‘用户名‘,editable=False)
    email = models.EmailField(db_index=True)
    memo = models.TextField()
    img = models.ImageField(upload_to=‘upload‘)
    user_type = models.ForeignKey("UserType", null=True, blank=True)
    gender_choices = (
        (0"男"),
        (1"女"),
    )
    gender = models.IntegerField(choices=gender_choices,default=1)
 
class UserType(models.Model):
    name = models.CharField(max_length=32)
 
    def __str__(self):
        return self.name

步骤6:在admin.py中注册表

1
2
3
4
5
6
from django.contrib import admin
 
# Register your models here.
from app01 import models
admin.site.register(models.userinfo)
admin.site.register(models.UserType)

步骤7:生成表结构

1
python  manage.py makemigrations && python manage.py migrate

注意:在数据库表结构发生变动时,再次执行python  manage.py makemigrations就会报错,这是因为此时表中可能已经有数据,貌然变动表结构会有影响,此时的解决方法有两种,一种是,设置新增字段的default=‘xxx‘某个值, 但是这种通用性不是很好。 另外一种是,设置该字段null=True。即允许为空即可

解决方法: 在外部键的后面加上 on_delete=models.CASCADE

以上是关于django 后台 admin的主要内容,如果未能解决你的问题,请参考以下文章

Django通过pycharm创建后,如何登录admin后台?

django后台管理系统

Django Admin后台使用tinymc 富文本编辑器

Django学习手册 - admin后台 切换成中文显示

Django后台管理系统讲解及使用

django 配置管理后台,出现多个 admin/admin/admin