赞
踩
系统学习django之搭建后台管理系统
django项目的搭建在前面已经写过,所以这里直接同搭建后台管理系统开始。
这里的django版本是2.0。
pip uninstall xadmin
sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))
import xadmin
urlpatterns = [url('xadmin/', xadmin.site.urls),]
Python manage.py makemigrations
Python manage.py migrate
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False
python manage.py createsuperuser
访问后台:http://127.0.0.1:8000/xadmin即可
如图所示
执行后应该会报错,这是因为python版本和django的版本导致的,借鉴了网上整理的错误。
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 迁移数据库
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)
这个时候后台管理系统就会添加该项。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。