django1.8使用django-xadmin管理后台

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-reversion (1.8.7)的版本需要注意,到github查看https://github.com/etianen/django-reversion/blob/master/CHANGELOG.rst,

也有多个分支适配不同的django版本,这里我选择的1.8.7的版本可以正常使用。


2.配置xadmin

settings.py文件:

INSTALLED_APPS += (
    'xadmin',
    'crispy_forms',
    'reversion',

)

注意:将下载的xadmin压缩文件解压后打开,将里面的xadmin目录及其文件复制粘贴到django项目的根目录下面,否则运行项目时将会错误提醒找不到xadmin(百度到的教程里面都没有提到这步。。。)


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 





你可能感兴趣的:(django)