下面是详细的“Django2.2配置xadmin的实现”的攻略,包含两个示例:
简介
XAdmin是一个基于Django的第三方管理后台框架,它提供了很多方便的功能,如内置了Bootstrap、jQuery、font-awesome等前端框架,同时支持主题定制和插件扩展等功能。下面让我们来详细讲解一下如何在Django2.2中配置XAdmin。
准备工作
在开始配置XAdmin之前,我们需要先安装XAdmin和Django2.2,可以使用pip命令进行安装:pip install xadmin django==2.2
。
接着在settings.py文件中加入以下内容:
INSTALLED_APPS = [
'xadmin',
'crispy_forms',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
'builtins': [
'xadmin.templatetags.xadmin',
'crispy_forms.templatetags.crispy_forms_tags',
'crispy_forms.templatetags.crispy_forms_field',
],
},
},
]
由于在XAdmin中需要使用到Crispy-forms,因此需要在INSTALLED_APPS中添加'crispy_forms'
。在TEMPLATES中需要添加一些builtins来加入Crispy-forms和XAdmin的一些模板标签。
后台管理界面
在此基础上,我们就可以开始定义我们自己的后台管理了,下面以两个示例来讲解。
示例一
首先,定义一个Admin模型(这里是BlogAdmin):
from django.contrib import admin
from .models import Blog
class BlogAdmin(admin.ModelAdmin):
list_display = ('title', 'pub_date')
ordering = ('-pub_date',)
admin.site.register(Blog, BlogAdmin)
这里的list_display用于定义在列表视图中显示的字段,ordering用于定义默认的排序方式。
对于使用XAdmin的话,只需将BlogAdmin继承自object(这个可避免一些微小的错误)并修改继承自admin.ModelAdmin的后台管理类名即可:
import xadmin
class BlogAdmin(object):
list_display = ('title', 'pub_date')
ordering = ('-pub_date',)
xadmin.site.register(Blog, BlogAdmin)
示例二
定义一个ArticleAdmin用于管理Article模型:
from .models import Article
from DjangoUeditor.widgets import UEditorWidget
class ArticleAdmin(object):
formfield_overrides = {models.TextField: {'widget': UEditorWidget}}
list_display = ('title', 'created_time', 'modified_time')
xadmin.site.register(Article, ArticleAdmin)
这里的UEditorWidget是一个用于管理富文本的插件,需要先进行安装:pip install django-ueditor
,同时在settings.py中加入以下内容:
INSTALLED_APPS = [
# Other apps...
'DjangoUeditor',
]
# Django-ueditor配置
UEDITOR_SETTINGS = {
# 'autoHeightEnabled': True,
'scaleEnabled': True,
'toolbars': [
# 这里是工具栏,具体可以参照其他博客进行配置
],
'imagePath': 'images/blog/ueditor/',
'filePath': 'files/blog/ueditor/',
'fileUrlPrefix': '', # 上传的文件的相对于MEDIA_URL的路径,这里设置为空,即上传后的文件可以直接访问,如果需要加上MEDIA_URL的话,必须先设置好MEDIA_URL
'imageUrlPrefix': '',
}
以上就是XAdmin的配置和两个示例,希望对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django2.2配置xadmin的实现 - Python技术站