美文网首页
Django + xadmin

Django + xadmin

作者: fbckf | 来源:发表于2018-08-07 17:10 被阅读0次

    Django + Xadmin

    Xadmin 是一个基于 Django 编写的 admin 的替代管理系统

    安装

     安装 Xadmin 的时候,需要注意 Django 的版本,Xadmin 在 Github 上的仓库 master 分支是支持 Django 1.9 版本的,假如是 Django 2.0 版本的,则需要从 Django2 分支安装

    # 从 PyPI 安装 支持 django 1.9
    $ pip install xadmin
    
    # 支持 django 1.4
    $ pip install django-xadmin
    
    # 从源码安装 支持django 2.0 
    $ pip install git+git://github.com/sshwsfc/xadmin.git@django2
    

     以上安装方法会同时安装好需要的第三方库,而如果是直接在 Github 上下载 zip 源码包或是使用 git clone 命令,则需要自己安装,可以使用一下命令

    # 在工程项目根目录中执行一下命令
    $ pip install -r requirements.txt
    

    配置

     在 settings.py 中注册相应库

    # 添加以下代码
    # Application definition
    
    INSTALLED_APPS = [
        ...
        'xadmin',
        'crispy_forms',
        'reversion',
    ]
    
    

     添加 url 规则

    from django.urls import path
    import xadmin
    xadmin.autodiscover()
    
    # version模块自动注册需要版本控制的 Model
    from xadmin.plugins import xversion
    xversion.register_models()
    
    urlpatterns = [
        # 将原先的 admin.site.urls 替换为以下
        path('admin/', xadmin.site.urls),
    ]
    
    

    登陆

    $ python manage.py runserver
    

     登陆 127.0.0.1:8000/admin

    image

     创建一个超级用户登陆

    $ python manage.py createsuperuser
    
    image

    简单定制

    • 中文显示
    # settings.py
    ...
    LANGUAGE_CODE = 'zh-hans'
    
    TIME_ZONE = 'Asia/Sahnghai'
    ...
    
    • 注册 models
    # 数据模型
    # users/models.py
    from django.db import models
    
    # Create your models here.
    class User(models.Model):
        nickname = models.CharField(max_length=50, blank=True)
        email = models.EmailField(('email address'), blank=True, unique=True)
    
        def __str__(self):
            return self.nickname
    
    # users/admin.py
    import xadmin
    from .models import User
    
    # Register your models here.
    class UserAdmin(object):
        # 在列表中显示 nickname email 两个字段
        list_display = ['nickname', 'email']
    
    xadmin.site.register(User, UserAdmin)
    
    image
    • 修改左侧菜单栏中栏目
    # users/apps.py
    
    from django.apps import AppConfig
    
    class UsersConfig(AppConfig):
        name = 'users'
        # verbose_name 为菜单栏目名字
        verbose_name = '用户'
    
    # users/__init__.py
    default_app_config='users.apps.UsersConfig'
    
    image
    • 修改页面 title footer header
    # users/admin.py
    import xadmin
    from .models import User
    from xadmin import views
    
    # Register your models here.
    class UserAdmin(object):
        list_display = ['nickname', 'email']
    
    class GlobalSetting(object):
        site_title = 'Fbckf'
        site_header = 'Fbckf'
        site_footer = 'Fbckf'
    
    xadmin.site.register(User, UserAdmin)
    xadmin.site.register(views.CommAdminView, GlobalSetting)
    
    image
    • 添加搜索、过滤器
    # users/admin.py
    ...
    class UserAdmin(object):
        list_display = ['nickname', 'email']
        # 根据 nickname 字段 搜索
        search_fields = ['nickname']
        list_filter = ['nickname']
    ...
    
    
    image

    更多内容可查看文档

    相关文章

      网友评论

          本文标题:Django + xadmin

          本文链接:https://www.haomeiwen.com/subject/pypavftx.html