Part15 Xadmin自定義布局

一、前言

本Part烁登,將介紹Django-Xadmin的布局自定義方式。

參考了UserAdmin的布局改寫:https://www.cnblogs.com/adc8868/p/7506973.html

但是我門總是不僅僅局限于用戶管理這個(gè)頁面的改寫揍瑟,所以本Part將以practise.Basic這個(gè)錄入控件案例為例药蜻,介紹如何在Xadmin快速布局。

二欣福、目錄結(jié)構(gòu)總覽

1责球、本part,我們在這個(gè)結(jié)構(gòu)下進(jìn)行代碼填充:

Project 目錄 (Django-Xadmin學(xué)習(xí)項(xiàng)目)
|
|-- app         
|   `-- practise  
...

三拓劝、官方代碼

1雏逾、首先我們先看看Xadmin中UserAdmin的布局是怎么寫的
(1)如果是extra_app拷到項(xiàng)目中的,則找到這個(gè)路徑

打開項(xiàng)目中的:/extra_app/
找到這個(gè)文件:xadmin/plugins/auth.py

(2)如果是pip安裝到Python環(huán)境中的郑临,則找到這個(gè)路徑

到你的Python環(huán)境:D:\Programs\Python\Python36\venv\xadmin_learn\Lib\site-packages
找到這個(gè)文件:xadmin/plugins/auth.py

2栖博、找到UserAdmin類的get_form_layout方法(大概在83行):

...
class UserAdmin(object):
  ...
  def get_form_layout(self):
      ...

3、對著用戶管理界面厢洞,學(xué)習(xí)布局的代碼仇让。

四典奉、效果圖

1、首先這次我們要對practise.Basic的布局進(jìn)行改造妹孙,我們看看原來的布局是怎么樣的


原來的布局

2秋柄、再看看自定義布局后的樣子


自定義的布局

3、可以看出來蠢正,布局可以更緊湊骇笔,更靈活

五、追加代碼

1嚣崭、在project/app/practise/adminx.py的class BasicAdmin笨触,屬性的下方,追加這個(gè)方法:

# -*- coding: utf-8 -*-
import xadmin
# 這也是追加的
from django.utils.translation import ugettext as _
from xadmin.layout import Fieldset, Main, Side, Row

from .models import Basic


class BasicAdmin(object):
    list_display = ['input_single']  # 控制顯示列數(shù)  
    search_fields = ['input_single']  # 控制搜索框的顯示
    list_filter = ['input_single']  # 控制篩選

    # 這是追加的
    def get_form_layout(self):
        self.form_layout = (
            Main(
                Fieldset(_('文本錄入案例'),
                         'input_single',
                         'input_multi',
                         'input_slug',
                         Row('input_integer', 'input_positive_integer',),
                         Row('input_float', 'input_big_integer', ),
                         ),
                Fieldset(_('日期錄入案例'),
                         Row('input_date', 'input_time'),
                         'input_datetime'
                         ),
                Fieldset(_('網(wǎng)絡(luò)錄入案例'),
                         'input_url',
                         'input_email',
                         'input_generic_ip',
                         ),
                Fieldset('',
                         'add_time',
                         css_class='unsort no_title'
                         ),
            ),
            Side(
                Fieldset(_('其他'),
                         'input_null_boolean'
                         ),
                Fieldset(_('其他'),
                         'input_null_boolean'
                         ),
            )
        )
        return super(BasicAdmin, self).get_form_layout()

xadmin.site.register(Basic, BasicAdmin)

2雹舀、從代碼可以看出芦劣,要進(jìn)行自定義xadmin布局,要做2個(gè)步驟:
(1)在import上引入了一些依賴说榆;
(2)在class里面虚吟,追加了一個(gè)方法“get_form_layout(self)”

3、其中“get_form_layout(self)”方法和UserAdmin中“get_form_layout(self)”最大的不同签财,是UserAdmin多了一行

if self.org_obj:

的判斷串慰,而我們自己定義的類中,是不需要這個(gè)判斷的唱蒸。

4邦鲫、完工!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末神汹,一起剝皮案震驚了整個(gè)濱河市庆捺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌屁魏,老刑警劉巖滔以,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異氓拼,居然都是意外死亡你画,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門披诗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來撬即,“玉大人,你說我怎么就攤上這事呈队“保” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵宪摧,是天一觀的道長粒竖。 經(jīng)常有香客問我颅崩,道長,這世上最難降的妖魔是什么蕊苗? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任沿后,我火速辦了婚禮,結(jié)果婚禮上朽砰,老公的妹妹穿的比我還像新娘尖滚。我一直安慰自己,他們只是感情好瞧柔,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布漆弄。 她就那樣靜靜地躺著,像睡著了一般造锅。 火紅的嫁衣襯著肌膚如雪撼唾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天哥蔚,我揣著相機(jī)與錄音倒谷,去河邊找鬼。 笑死糙箍,一個(gè)胖子當(dāng)著我的面吹牛渤愁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播倍靡,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼猴伶,長吁一口氣:“原來是場噩夢啊……” “哼课舍!你這毒婦竟也來了塌西?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤筝尾,失蹤者是張志新(化名)和其女友劉穎捡需,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體筹淫,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡站辉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了损姜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饰剥。...
    茶點(diǎn)故事閱讀 38,654評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖摧阅,靈堂內(nèi)的尸體忽然破棺而出汰蓉,到底是詐尸還是另有隱情,我是刑警寧澤棒卷,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布顾孽,位于F島的核電站祝钢,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏若厚。R本人自食惡果不足惜拦英,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望测秸。 院中可真熱鬧疤估,春花似錦、人聲如沸霎冯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肃晚。三九已至锚贱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間关串,已是汗流浹背拧廊。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晋修,地道東北人吧碾。 一個(gè)月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像墓卦,于是被迫代替她去往敵國和親倦春。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評論 2 349