Django的admin定制

1,models编写

#encoding=utf-8
from django.db import models

# Create your models here.
class BookInfo(models.Model):   #创建书本信息类,继承models.Model
    booktitle=models.CharField(max_length=20)
    bookdata=models.DateField()
    def __unicode__(self):      #设置后台数据显示信息
        return self.booktitle
class HeroInfo(models.Model):   #创建英雄信息类
    heroname=models.CharField(max_length=10)
    herosex=models.CharField(max_length=1)
    herocontent=models.CharField(max_length=50)
    herobook=models.ForeignKey('BookInfo',on_delete=models.CASCADE,)   #引用外键,即BookInfo对象
    def __unicode__(self):      #设置后台数据显示信息
return self.heroname

2,settings配置

app注册:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'web'
]

数据库配置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'web',
        'USER': 'root',
        'PASSWORD': 'Lifei@123',
        'HOST': 'localhost',
        'PORT': '3306',

    }
}

3,__init__文件配置(django版本高于1.8的不支持MySQLdb,选择使用pymsql,所以需要在init文件中作如下配置)

import pymysql
pymysql.install_as_MySQLdb()

4,在migrations中生成数据迁移文件,同步表结构(创建表)

 当表结构发生变化时需要进行再次生成数据迁移文件和同步表结构的操作

5,创建admin的superuser

在manage.py统计目录下,执行:python manage.py createsuperuser  即可

6,admin定制(简单版)

from django.contrib import admin
from web import models #导入app的models
# Register your models here.

class bookinfo(admin.ModelAdmin):   #自定义页面显示(创建数据后的数据显示格式)
    list_display = ('booktitle','bookdata')
class heroinfo(admin.ModelAdmin):
    list_display = ('heroname','herosex','herocontent','herobook')

admin.site.register(models.BookInfo,bookinfo)   #注册表  后台管理
admin.site.register(models.HeroInfo,heroinfo)

ps:遇到数据库版本小于1.3.3报错(mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)的情况,需要去修改C:\Python36\Lib\site-packages\django\db\backends\mysql的base.py文件。

  遇到MySQLdb模块找不到的情况,需要去修改C:\Python36\Lib\site-packages\django\db\backends\mysql的base.py文件和introspection.py文件,将其中的from MySQLdb import XXX中的MySQLdb改为我们使用的pymysql即可。

附图:

参考资料:http://www.cnblogs.com/alex3714/articles/5457672.html

原文地址:https://www.cnblogs.com/phyger/p/8040469.html