一、目的
1、本Part将以一个实际需求作为出发点,对一个参数表进行增删改查的开发。
二、需求
1、参数表:SPARAM_CONFIG
2、表格字段:
字段名 | 字段类型 | 字段说明 |
---|---|---|
pkey | string(100) | 参数索引 |
pkey_desc | string(1000) | 参数索引中文描述 |
pvalue | string(1000) | 参数值 |
pvalue_desc | string(1000) | 参数值中文描述 |
3、对上表,可以进行增删改查操作,Web展示。
三、新建users APP
1、使用pycharm创建app,Tools 工具栏运行 run manage.py Task,输入:
startapp sparam

四、移动该文件夹到app目录下
1、本part,我们在这个结构下进行代码填充:
Project 目录 (Django-Xadmin学习项目)
|
|-- app
| |-- users
| `-- sparam (移动过来)
...
2、依照上述的目录结构,移动sparam文件夹到app文件夹下。
五、填充代码
1、按照《二、需求》,在project/app/sparam/models.py,填充代码:
# -*- coding: utf-8 -*-
from django.db import models
from datetime import datetime
# Create your models here.
class Config(models.Model):
pkey = models.CharField(max_length=100, verbose_name=u'参数索引')
pkery_desc = models.CharField(max_length=1000, verbose_name=u'参数索引中文描述')
pvalue = models.CharField(max_length=1000, verbose_name=u'参数值')
# TextField 与 CharField的区别是TextField可以不限制文本长度
pvalue_desc = models.TextField(verbose_name=u'参数值中文描述')
add_time = models.DateTimeField(default=datetime.now, verbose_name=u'添加时间')
class Meta:
verbose_name = u'参数管理'
verbose_name_plural = verbose_name
3、在project/xadmin_learn/settings.py中注册app:
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 添加以下两个app配置
'xadmin',
'crispy_forms',
'app.users',
'app.sparam', # 注册App
]
4、在数据库生成新定义的表,Tools 工具栏运行 run manage.py Task输入:
makemigrations sparam
migrate sparam
5、数据库多了一张class对应的表

六、把这app注册到xadmin后台管理系统
1、在apps\sparam\中创建一个adminx.py文件
# -*- coding: utf-8 -*-
import xadmin
from .models import Config
class ConfigAdmin(object):
list_display = ['pkey', 'pkey_desc', 'pvalue', 'pvalue_desc'] # 控制显示列数
search_fields = ['pkey'] # 控制搜索框的显示
list_filter = ['pkey', 'pkey_desc', 'pvalue', 'pvalue_desc'] # 控制筛选
xadmin.site.register(Config, ConfigAdmin)
2、其中,几个list的作用分别是:
list_display=['code','email','send_type','send_time']
![]()
search_fields=['code','email','send_type']
![]()
list_filter = ['code','email','send_type','send_time']
![]()
七、查看效果
1、重启项目
2、查看效果

3、(增)增加一条记录试试


4、(删)删除若干条条记录


5、(改)更新某一条记录

6、(查)按需搜索

八、调整导航栏显示文字
1、把App名称改为中文,在所有app文件夹内有一个apps.py文件和init.py文件
(1)修改app/sparam/apps.py
#apps.py
from django.apps import AppConfig
class SparamConfig(AppConfig):
name = 'app.sparam' # 记得加上“app.”
verbose_name = u'参数管理' # 补充这一行
(2)修改app/sparam/_init_.py
#__init__.py
default_app_config = 'app.sparam.apps.SparamConfig'
2、重启项目后,左侧导航栏多了一项“参数管理”,效果图

网友评论