django默認是有一個admin的後臺管理模塊,可是醜,功能也不齊全,可是大神給咱們已經集成好了xadmin後臺,咱們拿來用便可,可是呢,django已經升級到2.1版本了,xadmin貌似跟不上節奏,那麼在集成過程當中咱就一步一步填坑吧,這也是一種學習的過程,遇到錯誤,找到錯誤的地方,看看django最新升級都修改了那些,去掉了那些,把相應出錯的地方替換便可。css
xadmin源碼地址:https://github.com/sshwsfc/xadminpython
咱們用到的是xadmin文件夾,將xadmin複製到項目的根目錄,與項目同級別。git
激活項目的虛擬環境,cd 到解壓的 xadmin-master目錄,運行一下代碼github
pip3 install -r requirements.txt
而後運行:python manage.py makemigrations 創建數據庫遷移文件web
錯誤提示:ModuleNotFoundError: No module named 'django.core.urlresolvers'
sql
這是由於django2.1把from django.core.urlresolvers修改爲了django.urls數據庫
那麼如圖所示將 from django.core.urlresolvers import NoReverseMatch, reverse
django
修改成:
from django.urls import NoReverseMatch, reverse
ssh
forms.Field.__init__(self, required, widget, label, initial, help_text, *args, **kwargs) 修改成如圖所示:
解決辦法:學習
# 將 website.py 中的 from django.contrib.auth.views import login from django.contrib.auth.views import logout # 修改成 from django.contrib.auth import authenticate, login, logout
錯誤五:ImportError: cannot import name 'QUERY_TERMS' from 'django.db.models.sql.query'
解決辦法:
# django2.1.1版本將xadmin\plugins\filters.py文件中的 from django.db.models.sql.query import LOOKUP_SEP, QUERY_TERMS # 修改成 from django.db.models.sql.query import LOOKUP_SEP, Query # 在Django2.0版本中把 from django.db.models.sql.query import LOOKUP_SEP, QUERY_TERMS # 修改成: from django.db.models.sql.query import LOOKUP_SEP from django.db.models.sql.constants import QUERY_TERMS
錯誤六:ModuleNotFoundError: No module named 'django.contrib.formtools' 導入fromtools錯誤,版本過低
解決方案:
# 卸載舊版本 pip uninstall django-formtools # 安裝新版本 pip install django-formtools
錯誤七:
解決方案:
# 把xadmin\plugins\password.py中的 from django.contrib.auth.views import password_reset_confirm 修改成: from django.contrib.auth.views import PasswordResetConfirmView
再把位於75行左右 return後的 password_reset_confirm修改成 PasswordResetConfirmView,以下圖所示
解決辦法:
# 將xadmin\plugins\language.py 中的 if settings.LANGUAGES and 'django.middleware.locale.LocaleMiddleware' in settings.MIDDLEWARE_CLASSES: 修改成: if settings.LANGUAGES and 'django.middleware.locale.LocaleMiddleware' in settings.MIDDLEWARE:
最後運行:python manage.py makemigrations 建立遷移數據文件
再運行:python manage.py migrate 遷移數據庫
若是在以上過程當中出現相似錯誤,請依照錯誤相應修改,錯誤提示的前後順序或許不同,可是請仔細閱讀錯誤提示代碼。