01. xadmin表单的自定义排版

xadmin表单的自定义布局(重写 get_form_layout())

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()
adminx.py


完成后示意图

 

没有归类的将会被放在"其它字段中"

 

posted @ 2019-12-10 18:13  渱尘  阅读(849)  评论(0编辑  收藏  举报