python测试开发django-41.crispy-forms设计标签式导航菜单(TabHolder)

本文深入探讨了xadmin和crispy_forms在Django项目中的应用,特别是如何利用crispy_forms框架进行高效的表单布局设计,包括TabHolder和Tab组件的使用,以实现美观且功能丰富的详情页面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

xadmin的详情页面主要是用form_layout布局,学会了完全可以不用写html代码,也能做出很好看的页面。
xadmin的html页面是用的Bootstrap3框架设计的,layout布局用到的是django-crispy-forms框架,本篇详细讲下django-crispy-forms的官方文档案例

django-crispy-forms

当我们使用xadmin后台的时候,在INSTALLED_APPS里面同时添加了xadmin和crispy_forms这2个app,xadmin已经知道了,但不知道crispy_forms这个app是干什么的

可以在百度上搜到crispy_forms,顺藤摸瓜找到django-crispy-forms的github地址https://github.com/django-crispy-forms/django-crispy-forms

可以看出它是基于django-uni-form这个框架开发的,专门用于详情页面的布局设计,完美的支持Bootstrap前端框架。
它的设计理念是Forms have never been this crispy

更多功能介绍,查看官方文档https://django-crispy-forms.readthedocs.io/en/latest/

Tab&TabHolder

使用TabHolder 可以快速设计一个标签式导航菜单,不同的标签用Tab分开,Tab里面第一个参数是标签的名称,一个Tab可以设计多个Field。

TabHolder (
    Tab ('First Tab' ,
        'field_name_1' ,
        Div ('field_name_2' )
    ),
    Tab ('Second Tab' , Field ('field_name_3' , css_class = 'extra' ) ) )

标签式导航菜单

接着前面这篇python测试开发django-39.xadmin详情页面布局form_layout页面设计的基础上,添加一个标签式导航菜单案例。
关于导航菜单的更多的介绍可以看菜鸟教程地址http://www.runoob.com/bootstrap/bootstrap-navigation-elements.html

# adminx.py
import xadmin
from .models import ArticleDetail
from xadmin.layout import Main, TabHolder, Tab, Fieldset, Row, Col, AppendedText, Side, Field class MoreActicl(object): list_display = ['title', 'body', 'auth'] # layout布局 form_layout = ( Fieldset(u'', Row('title', 'auth'), # Row 表示将里面的字段作为一行显示 Row('classify'), css_class = 'unsort', ), Fieldset(('正文内容'), # Fieldset第一个参数表示区块名称 'body', css_class = 'unsort', ), TabHolder( Tab('body-raw', Field('title', css_class="extra"), Field('body'), css_class = 'unsort' ), Tab('body-json', Field('body',) ), css_class = 'unsort', ) ) xadmin.site.register(ArticleDetail, MoreActicl) 

打开之后页面显示效果如下图

css_class="extra"可以将输入框占一整行

转载于:https://www.cnblogs.com/mashuqi/p/11024122.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值