Django + xadmin

Django + Xadmin

Xadmin 是一個基于 Django 編寫的 admin 的替代管理系統(tǒng)

安裝

?安裝 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 命令,則需要自己安裝,可以使用一下命令

# 在工程項目根目錄中執(zhí)行一下命令
$ pip install -r requirements.txt

配置

?在 settings.py 中注冊相應(yīng)庫

# 添加以下代碼
# Application definition

INSTALLED_APPS = [
    ...
    'xadmin',
    'crispy_forms',
    'reversion',
]

?添加 url 規(guī)則

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

?創(chuàng)建一個超級用戶登陸

$ python manage.py createsuperuser
image

簡單定制

  • 中文顯示
# settings.py
...
LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Sahnghai'
...
  • 注冊 models
# 數(shù)據(jù)模型
# 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
  • 修改左側(cè)菜單欄中欄目
# 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']
    # 根據(jù) nickname 字段 搜索
    search_fields = ['nickname']
    list_filter = ['nickname']
...

image

更多內(nèi)容可查看文檔

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容