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)	

这个时候后台管理系统就会添加该项。

发布了31 篇原创文章 · 获赞 29 · 访问量 8742

猜你喜欢

转载自blog.csdn.net/m0_38051293/article/details/102756569