zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Redis从0到精通Redis持久化
    Redis从0到精通事务
    Redis从0到精通Nosql概述
    LAMP源码MySQL集群版搭建 枯木
    Apache mod_cband 流量控制 枯木
    MySQL簇概述 枯木
    RHEL6 sysbench libtool error 枯木
    shell脚本不换行刷新数据 枯木
    MySQLCluster 枯木
    MFS部署 枯木
  • 原文地址:https://www.cnblogs.com/phyger/p/8040469.html
Copyright © 2011-2022 走看看