Django搭建後臺管理系統

Django搭建後臺管理系統

1、項目需求

系統學習django之搭建後臺管理系統

2、項目初始化

django項目的搭建在前面已經寫過,所以這裏直接同搭建後臺管理系統開始。
這裏的django版本是2.0。

  • 1、下載xadmin
    github上下載源碼包。解壓複製xadmin文件夾到Django項目的自建包extra_apps中。
    因爲我們用源碼的xadmin,所以要卸載之前安裝的
 pip uninstall xadmin
  • 2、配置setting.py
    將extra_apps包加入到python的搜尋環境
sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))
  • 3、配置xadmin apps
    在settings.py中的INSTALLED_APPS添加’xadmin’,‘crispy_forms’
  • 4、配置urls
    在urls.py中 添加
    配置url
import xadmin
urlpatterns = [url('xadmin/', xadmin.site.urls),]
  • 5、數據遷移
Python manage.py makemigrations
Python manage.py migrate
  • 6、設置成中文
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False
  • 7、創建一個管理員用戶
python manage.py createsuperuser

訪問後臺:http://127.0.0.1:8000/xadmin即可
如圖所示
在這裏插入圖片描述
執行後應該會報錯,這是因爲python版本和django的版本導致的,借鑑了網上整理的錯誤。

  • 8、錯誤整理
error methods
關聯關係ForeignKey引發的錯誤,打開xadmin文件中的模型文件models.py 添加 on_delete=models.CASCADE
No module named ‘django.core.urlresolvers’ django.core.urlresolvers修改成django.urls
__init__takes one positional argument but 6 were given 更改爲forms.Field.init(self)
cannot import name ‘QUERY_TERMS’ from ‘django.db.models.sql.query’ from django.db.models.sql.query import LOOKUP_SEP 。。。 from django.db.models.sql.constants import QUERY_TERMS
No module named ‘django.contrib.formtools’ 卸載舊版本pip uninstall django-formtools再安裝
‘Settings’ object has no attribute ‘MIDDLEWARE_CLASSES’ 修改爲if settings.LANGUAGES and ‘django.middleware.locale.LocaleMiddleware’ in settings.MIDDLEWARE:
login() got an unexpected keyword argument 'current_app’錯誤 註釋61行 #‘current_app’: self.admin_site.name
‘Media’ object has no attribute ‘add_css’ 將util.py 中的86行 def vendor(*tags):方法體修改
‘DateTimeField’ object has no attribute ‘rel’ 將rel改爲remote_field ()注:凡是報異常rel的地方都可以嘗試將報錯方法中的.rel 修改爲.remote_field)
‘ManyToOneRel’ object has no attribute ‘to’ self.add_url, (_(‘Create New %s’) % self.rel.to.meta.verbose_name), name,修改爲self.add_url, ((‘Create New %s’) % self.rel), name

最後運行:python manage.py makemigrations 創建遷移數據文件
再運行:python manage.py migrate 遷移數據庫

  • 9 、在app中添加adminx.py管理
    models.py
class Course(models.Model):
    name = models.CharField("課程名",max_length=50)
    class Meta:
        verbose_name = "課程"
        verbose_name_plural = verbose_name
    def __str__(self):
        return self.name

adminx.py

class CourseAdmin(object):
    '''課程'''
    list_display = [ 'name'] #TODO 展示
    search_fields = ['name' ] #TODO 查詢
    list_filter = [ 'name']	 #TODO 過濾
# 將管理器與model進行註冊關聯
xadmin.site.register(Course, CourseAdmin)	

這個時候後臺管理系統就會添加該項。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章