Django的admin已经为我们做好了,很完善的后台管理体系,但页面过于丑陋,自定义的能力还是有局限性的。特此,重写admin后台管理体系,同时也是考虑到其他轻量级框架并没有类似Django这么完善的admin!写成独立的app,便宜更好的进行复用迁移。
命名根据自己的喜好吧,推荐使用PyCharm进行创建,减少一些配置操作,当然不要忘记在settings.py的一些配置!
目录结构如下:
1#这是总的urls.py中的配置,独立将在下面一次贴出来2fromdjango.conf.urlsimporturl,include3fromdjango.contribimportadmin4urlpatterns=[5url(r'^admin/',admin.site.urls),6url(r'^crm/',include('CRM.urls')),7url(r'^student/',include('student.urls')),8url(r'^consultant/',include('consultant.urls')),9url(r'^king_admin/',include('king_admin.urls')),10]
表结构设计是非常关键的步骤,也是最难点!这会影响你以后的程序设计,稍有疏漏,很可能会导致你要进行代码重构或者一路填坑...
由于要做的是CRM系统,这里就以XXX公司作为案例。
在进行具体的代码之前,我们先进行一些数据关系的处理,这里推荐大家使用ER图(mac上我使用MindNode)。我这里是通过先前搞好的数据结构和ER图,就不在重复赘述,直接上处理好后的图和代码:
ER思维导图:
数据关系图:
在主app,CRM中的models.py中创建数据结构:
在进行分析之前,我们需要创建超级用户,然后登陆到后台中,添加一些测试数据。
1>>>pythonmanage.pycreatesuperuser2#下面的用户名和密码自己耍吧!
其实,创建完用户我们就已经可以进入到后台了,将写好数据表models.py里面的类注册CRM项目的admin.py中,并进行一些简单的自定义操作:
1fromdjango.contribimportadmin2fromCRMimportmodels3#Registeryourmodelshere.4#注册操作5admin.site.register(models.Branch)6admin.site.register(models.ClassList)7admin.site.register(models.Course)8admin.site.register(models.CourseRecord)9admin.site.register(models.Customer)10admin.site.register(models.CustomerFollowUp)11admin.site.register(models.Enrollment)12admin.site.register(models.Payment)13admin.site.register(models.Role)14admin.site.register(models.StudyRecord)15admin.site.register(models.UserProfile)16admin.site.register(models.Tag)17admin.site.register(models.Menu)
以下是将数据库表结构设计好后的显示效果,其中添加了一些测试数据:
我们在上面看到客户表中显示的内容太过稀少,而且功能也是少的可怜,好在Django为我们提供了自定义功能。
同样在admin.py中进行自定义操作:
支持中文:
1'django.contrib.sessions.middleware.SessionMiddleware',2'django.middleware.locale.LocaleMiddleware',#设置admin为中文,必须放在django.contrib.sessions....之后
修改时区:
1LANGUAGE_CODE='en-us'23TIME_ZONE='Asia/Shanghai'#设置为东八区的时区45USE_I18N=True67USE_L10N=True89USE_TZ=True