Django2.2配置xadmin的实现

下面是详细的“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技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Django-orm数据库查询语句

    Django-orm数据库查询语句 #### orm查询用法大全 ### 数据库表 class UserInfo(models.Model): ### 主键自增id不用写, 默认会加上 name = models.CharField(max_length=32, null=True) age = models.IntegerField(null=True) …

    Django 2023年4月10日
    00
  • django _meta方法

    1 models.Book._meta.’concrete_model’: <class ‘books.models.Book’> 2 models.Book._meta.’related_fkey_lookups’: [] 3 models.Book._meta.’get_latest_by’: None 4 models.Book._meta…

    Django 2023年4月11日
    00
  • Django密码管理

    密码管理通常不应被不必要地重新发明,Django提供一套安全灵活的工具来管理用户密码。如何存储密码,如何配置存储哈希以及一些使用哈希密码的实用程序。 也可看看 即使用户可能使用强密码,攻击者也可能能够窃听其连接。使用HTTPS避免通过纯HTTP连接发送密码(或任何其他敏感数据),因为它们很容易被密码嗅探。 Django如何存储密码 Django提供了一个灵活…

    Django 2023年4月12日
    00
  • django自定义标签错误 ‘my_tag’ is not a registered tag library.

    解决办法: 在settings里的 加上红色的部分,my_tag为自定义的标签函数 后面的为其地址  TEMPLATES = [ { ‘BACKEND’: ‘django.template.backends.django.DjangoTemplates’, ‘DIRS’: [os.path.join(BASE_DIR, ‘templates’)] , ‘AP…

    Django 2023年4月11日
    00
  • django 使用django-cors-headers 解决跨域问题

    django-cors-headers ”’ 浏览器具有 “同源策略的限制”,导致 `发送ajax请求` + `跨域` 存在无法获取数据。 – 简单请求,发送一次请求。 – 复杂请求,先options请求做预检,然后再发送真正请求 ”’ 1、使用pip安装 pip install django-cors-headers 2、添加到setting的app中…

    Django 2023年4月12日
    00
  • Django 新建项目运行 python manage.py runserver 8080 报错

    PS D:\Programs\Python\WebSite1\MySite> python manage.py runserver 8080 Watching for file changes with StatReloader Exception in thread django-main-thread: Traceback (most recent…

    Django 2023年4月16日
    00
  • 部署Django项目在IIS10上

    系统及软件版本 Windows Server 2012 Standard IIS 8.0 Anaconda3 4.0.0 64位 (搭载python3.5.1) Django 1.10.1 首先确保自己的django网站在服务器上可以通过命令行 runserver 正常运行。 2. IIS配置 添加角色与功能 在服务器管理器中,添加角色与功能 添加角色与功能…

    Django 2023年4月16日
    00
  • Django logging日志模块实例详解(日志记录模板配置)

    让我来给您讲解一下“Django logging日志模块实例详解(日志记录模板配置)”的攻略,涉及到日志记录模板配置的两个示例。 简介 在Django应用程序中使用logging模块记录日志非常重要。因为日志可以帮助我们找到错误并快速解决问题。Django中的logging模块遵循Python的标准库logging模块。logging模块可以让我们记录不同类…

    Django 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部