* 使用xadmin+django構建一個后台
安裝
我的系統基於django==2.0.0開發的,所以直接從源碼安裝
$ pip install git+git://github.com/sshwsfc/xadmin.git@django2
配置
在 settings.py 中注冊相應庫
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), ]
登陸
╰$ python3 manage.py runserver 127.0.0.1:8001
登錄 127.0.0.1:8001/admin

簡單定制
注冊 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 ``` ```python # 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)
修改左側菜單欄中欄目
# users/apps.py from django.apps import AppConfig class UsersConfig(AppConfig): name = 'users' # verbose_name 為菜單欄目名字 verbose_name = '用戶' ``` ```python # users/__init__.py default_app_config='users.apps.UsersConfig'
* 修改頁面 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 = '雨夜的博客' site_header = '雨夜的博客' site_footer = '雨夜的博客' xadmin.site.register(User, UserAdmin) xadmin.site.register(views.CommAdminView, GlobalSetting)
* 添加搜索、過濾器
# users/admin.py class UserAdmin(object): list_display = ['nickname', 'email'] # 根據 nickname 字段 搜索 search_fields = ['nickname'] list_filter = ['nickname']
