django1.8使用django-admin管理后台
1.需要安装的包
# django-xadmin-1.8.zip https://github.com/sshwsfc/xadmin/tree/django1.8
django-xadmin (0.5.0)
django-crispy-forms (1.6.0) #大于1.4的版本即可
django-reversion (1.8.7)
其中django-admin在github的master分支的代码只支持django1.7版本的,所以直接安装使用会有各种各样的错误(真心搞了好久。。。)https://github.com/sshwsfc/xadmin/issues/273
所以需要选择django-xadmin的1.8的那个分支的代码,地址https://github.com/sshwsfc/xadmin/tree/django1.8
下载压缩包,然后到对应目录下
pip install django-xadmin-1.8.zip
也有多个分支适配不同的django版本,这里我选择的1.8.7的版本可以正常使用。
2.配置xadmin
settings.py文件:
INSTALLED_APPS += (
'xadmin',
'crispy_forms',
'reversion',
)
urls.py文件:
from django.conf.urls import include, url
# from django.contrib import admin
import xadmin
xadmin.autodiscover()
from xadmin.plugins import xversion
xversion.register_models()
urlpatterns = [
url(r'^admin/', include(xadmin.site.urls)),
]
admin.py文件:
import xadmin as admin
from common import models
# Register your models here.
# admin.site.register(Permission)
# admin.site.register(models.User)
admin.site.register(models.Appointment)
注意:运行时会提醒permission和user这两个model已经注册了,所以这里面需要注释掉
3.生成表
python manage.py makemigrations
python manage.py migrate
这里可能会报错,比如:django.db.utils.IntegrityError: (1215, 'Cannot add foreign key constraint'),不知道为什么,但是可以确定是由于settings文件中安装了xadmin的导致的。
我的解决方式是:
INSTALLED_APPS += (
# 'xadmin',
'crispy_forms',
'reversion',
)
先去掉xadmin,运行migrate正常生成表,再加上xadmin,然后migrate可以正常生成xadmin的表
| xadmin_bookmark |
| xadmin_usersettings |
| xadmin_userwidget
这三张表如果不存在,页面将会报错。
reversion生成两张表:
reversion_revision
reversion_version