我的环境:
pycharm python3.8 django3.0 xadmin3.0
安装xadmin3.0 下载页面
https://codeload.github.com/russell310/xadmin/zip/django3
在虚拟环境下进入文件安装依赖文件requirements.txt
将其内的xadmin文件直接copy到项目中
设置语言和时区
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
注册xadmin
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 注册xadmin
'xadmin',
'crispy_forms',
]
设置xadmin
在应用的urls.py中导入xadmin
添加url
path('xadmin/', xadmin.site.urls),
数据库迁移
# 生成数据库执行文件
python manage.py makemigrations
# 数据库迁移
python manage.py migrate
设置超级管理员账号
python manage.py createsuperuser
按照指示完成
在应用中建立自己的后台管理项目
建立xadmin.py
进行注册添加
例如:
from .models import Article
import xadmin
class ArticleAdmin(object):
date_hierarchy = 'create_date'
exclude = ('views',)
# 在查看修改的时候显示的属性,第一个字段带有<a>标签,所以最好放标题
list_display = ('id', 'title', 'author', 'create_date', 'update_date')
# 设置需要添加<a>标签的字段
list_display_links = ('title',)
# 激活过滤器,这个很有用
list_filter = ('create_date', 'category')
list_per_page = 50 # 控制每页显示的对象数量,默认是100
filter_horizontal = ('tags', 'keywords') # 给多选增加一个左右添加的框
# 限制用户权限,只能看到自己编辑的文章
def get_queryset(self, request):
qs = super(ArticleAdmin, self).get_queryset(request)
if request.user.is_superuser:
return qs
return qs.filter(author=request.user)
xadmin.site.register(Article,ArticleAdmin)
例子
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency users.0001_initial on database 'default'.
进入数据库删除所有表再次执行
python manage.py migrate