01. xadmin表单的自定义排版
xadmin表单的自定义布局(重写 get_form_layout())
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
apps.courses.adminx.py class NewCoursesAdmin(object): list_display = ['name', 'desc', ...] search_fields = ['name', 'desc', ... ] list_filter = ['name', 'teacher__name', 'desc', ... ] def get_form_layout(self): # self.org_obj指的是,仅当修改的时候才采用本设置,新建还是老样式 if self.org_obj: self.form_layout = ( Main( Fieldset('讲师信息', 'teacher', 'course_org', # 不给当前区域取名 css_class='unsort no_title' ), Fieldset('基本信息', 'name', 'desc', # 对较短的字段,可用Row()让它们在一行内显示 Row('learn_times', 'degree'), Row('category', 'tag'), 'youneed_know', 'teacher_tell', 'detail', ), ), # 右侧,侧边栏 Side( Fieldset('访问信息', # 'fav_nums', 'click_nums', 'students', 'add_time', ), ), Side( Fieldset('选择信息', 'is_banner', 'is_classics', ), ), ) # print(self.__class__.__mro__) 可以查看当前的mro顺序,看下一个类是什么 return super(NewCoursesAdmin, self).get_form_layout()
完成后示意图
![](https://img2018.cnblogs.com/i-beta/1753812/201912/1753812-20191210183349936-1127300475.png)
没有归类的将会被放在"其它字段中"