首先需要安装 xadmin : pip install xadmin
结果出现了一下错误
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\lixin\AppData\Local\Temp\pip-build-z8cuvfwi\xadmin\setup.py", line 11, in <module>
long_description=open('README.rst').read(),
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 3444: illegal multibyte sequence
错误信息说明是README.rst的编码问题,将其文件清空即可。
这时候先在github下载:https://github.com/sshwsfc/xadmin
下载后将将压缩包里的 README.rst清空并保存,然后在终端进入压缩包目录,输入 :pip install 压缩包名称
这样就成功安装xadmin
接下来还需要在setting中注册,django的开发是基于qpp的,即使是后台管理系统也是
INSTALLED_APPS中增加2个app:xadmin、crispy_forms
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'xadmin',
'crispy_forms'
]
在 urls.py中编写xadmin的跳转,替代默认的admin
import xadmin
urlpatterns = [
url(r'^xadmin/', xadmin.site.urls),
]
数据库同步
makemigrations
migrate
接下来就能通过 127.0.0.1/xadmin/ 来访问我们的后台系统了,如果没有创建超级用户就创建 ,详见http://blog.youkuaiyun.com/javalixy/article/details/78208932
xadmin注册:实现models在xadmin中显示
user app下创建表EmailVerifyRecord
class EmailVerifyRecord(models.Model):
email_choices = (
('register', u'注册'),
('forget', u'找回密码'),
)
code = models.CharField(max_length=20, verbose_name=u'验证码')
email = models.EmailField(max_length=50, verbose_name=u'邮箱')
send_type = models.CharField(choices=email_choices, max_length=10, verbose_name=u'验证码类型')
send_time = models.DateTimeField(default=datetime.now, verbose_name=u'发送时间')
在创建的app下创建adminx.py文件(注意:必须是adminx命名)
import xadmin
from .models import EmailVerifyRecord
class EmailVerifyRecordAdmin(object):
list_display = ['code', 'email', 'send_type', 'send_time']
search_fields = ['code', 'email', 'send_type']
list_filter = ['code', 'email', 'send_type', 'send_time']
xadmin.site.register(EmailVerifyRecord, EmailVerifyRecordAdmin)
这样就能看到
添加xadmin主题:
在user app中的xadmin.py中添加:
from xadmin import views
class BaseSetting(object):
enable_themes = True
use_bootswatch = True
xadmin.site.register(views.BaseAdminView, BaseSetting)
全局应用
页头和页尾自定义:在user app中的xadmin.py中添加:
class GlobalSettings:
site_title = 'oldbig的后台管理系统'
site_footer = 'oldbig'
menu_style = 'accordion' #左侧app中文名称定义和多表紧缩