一、版本

django3.0 + python 3.8 + xadmin

xadmin下载地址:https://github.com/vip68/xadmin_bugfix

二、下载相关库包

django自带的admin后台不是很美观,我们在做程序开发时就会想着替换,xadmin就是比较好的替换。

我们去github下载完之后解压,把xadmin这个文件和requirements.txt文件复制到项目根目录下,然后我们在项目的更目录下的终端执行,我的编辑器时pycharm

pip install -r requirements.txt

执行完之后,我们就要去项目中的settings.py中注册xamin等应用模块

INSTALLED_APPS = [
       ....

    # xadmin后台
    'xadmin',
    'crispy_forms',
    'reversion',
]

注册好了之后,我们就将模块中用到的数据迁移到数据库,这里要先保证我们已经有连接数据库了。

python manage.py migrate

这时候我们的控制台会报错如下

  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "E:\pyCharmProject\hengda\xadmin\plugins\importexport.py", line 48, in <module>
    from import_export.admin import DEFAULT_FORMATS, SKIP_ADMIN_LOG, TMP_STORAGE_CLASS
ImportError: cannot import name 'SKIP_ADMIN_LOG' from 'import_export.admin' (D:\Anaconda\envs\hengda\lib\site-packages\import_export\admin.py)

点击报错的链接: File "E:\pyCharmProject\hengda\xadmin\plugins\importexport.py", line 48, in <module>

之后我们就来到了importexport.py代码中,可以看到有爆红的地方,这是因为在新的xadmin中已经弃用了这个库包的引入,所以我们要替换掉它,

找到报错的代码用到的地方,在def get_skip_admin_log(self)的上面加上test(self)函数代码保存,之后再运行 python manage.py migrate,你会发现这时候已经可以了。
 

      def test(self):
        if self.aaa is None:
            return ImportMixin(ImportExportMixin).get_skip_admin_log()
        else:
            return self.aaa

    # def get_skip_admin_log(self):
    #     if self.skip_admin_log is None:
    #         return SKIP_ADMIN_LOG
    #     else:
    #         return self.skip_admin_log
    #
    # def get_tmp_storage_class(self):
    #     if self.tmp_storage_class is None:
    #         return TMP_STORAGE_CLASS
    #     else:
    #         return self.tmp_storage_class

三、启动项目

修改项目下的url.py文件中的后台访问路径,导入包之后访问http://127.0.0.1:8000/admin/

urlpatterns = [
    path('admin/', xadmin.site.urls),
}

启动项目之后,进入管理后台可以看见出现这个后台证明已经成功了。

这时候我们可以将后台的语言设置成中文。

到项目的setting.py文件:

将:

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

 

修改成:

LANGUAGE_CODE = 'zh-Hans'

TIME_ZONE = 'Asia/Shanghai'

至此,我们的xadmin就修改完成了。

 

 

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐