xadmin快速搭建一個后台管理系統


環境:python3.5.2 ,django 2.0 ,xadmin2.0

Firsttly,

到 https://github.com/sshwsfc/xadmin/tree/django2上下載源碼,之后把其中的xadmin目錄放在項目目錄中新建的extra_apps這個目錄中

 

Secondly,

將extra_apps mark as source root ,然后在settings中將其導入到python 的搜索目錄中

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# 文件目錄導入到搜索路徑中
sys.path.insert(0, os.path.join(BASE_DIR, "apps"))
sys.path.insert(0, os.path.join(BASE_DIR,"extra_apps"))

然后,install xadmin所需的第三方庫

pip3 install -r requirements.txt

Thirdly,

在settings.py中我們還需要導入以下幾個app

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

Fourthly,

在urls.py中也需要對其的路徑進行下配置

from extra_apps import xadmin
urlpatterns = [
    #path('admin/', admin.site.urls),
    path('xadmin/', xadmin.site.urls),
]

 Fifthly,相關設置

后台數據展示

在當前apps下創建xadmin.py文件,注意只能是adminx.py文件

class ModelObjectAdmin(object):
    
    # 排除一些不想被其他人編輯的fields,不包含在內的字段不能編輯
    fields = ('fields',)
 
    # 數據展示顯示,列表中展示哪些字段信息
    list_display = [“fields”,]

    # 篩選(后台管理頁面中的過濾器)
    list_filter = ['fields']

    # 查詢 ,指定哪些字段信息可以被搜索
    search_fields =[ 'fields']

    # 后台自定義默認排序 ,加‘-’表示降序
    ordering = ['-fields'] 

    # 添加日期過濾器,該字段只能是日期類型
     date_hierarchy = 'date_fields' 

    # 后台直接在表上修改數據
    list_editable =  ['fields']

    # 自定義該表菜單的icon樣式
    model_icon = 'fa fa-cog'

    # xadmin/plugins/refresh插件定時刷新頁面
    refresh_times = [60]  # 后台可選擇10秒刷新一次或者60秒刷新一次

    # 后台自定義哪些字段只可讀
    readonly_fields = [“fields”]

    # 列表顯示的時候,指定的字段可以直接頁面一鍵編輯
    list_editable = ["fields”]

    # 指定xadmin插件的樣式
    style_fields = {'roles': 'm2m_transfer',“article”:'ueditor'}

    # filter_horizontal 從‘多選框’的形式改變為‘過濾器’的方式,水平排列過濾器,必須是一個 ManyToManyField類型,且不能用於 ForeignKey字段
    filter_horizontal = ('fields',)

    # 同上filter_horizontal,垂直排列過濾器
    filter_vertical = ["fields",]

    #  將ForeignKey字段從‘下拉框’改變為‘文本框’顯示
    raw_id_fields = ['fields',]

    # 在編輯和查看列表時指定不顯示的字段
    exclude = ['fields']

    # 在指定的字段后添加一個顯示數據詳情的一個按鈕
    show_detail_fields=['fields']
    
    # 后台自定義不是下拉選擇框,而是搜索框
relfield_style = 'fk-ajax'

xadmin.site.register(ModelObject, ModelObjectAdmin)

 基礎設置

from xadmin import views

class BaseSetting(object):
    enable_themes = True   #開啟主題選擇
    use_bootswatch = True

class GlobalSettings(object):
    site_title = "xx后台管理系統"      #設置頭標題
    site_footer = " "      #設置腳標題 (設置底部關於版權信息)
 #設置菜單縮放
    menu_style = "accordion"   #設置菜單樣式

xadmin.site.register(views.BaseAdminView, BaseSetting)
xadmin.site.register(views.CommAdminView, GlobalSettings)

中文顯示和時區設置

# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans'
  
# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'

app標題設置

app下的apps.py文件

class UserConfig(AppConfig):
    name = 'apps.user'
    verbose_name="用戶管理"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM