stack组件03
继昨天留下的问题

思路:


结果:

优化:
from stark.service.site import site,ModelSatrk from .models import *
from django.utils.safestring import mark_safe
from django.urls import reverse
#
class BookConfig(ModelSatrk): def edit(self,obj=None,is_header=False):
if is_header:
return "操作"
edit_url=reverse("%s_%s_change"%self.app_model_name,args=(obj.pk,))
return mark_safe("<a href='%s'>编辑</a>"%edit_url) # return 的url需要反向解析,需要取到name的值 def delete(self,obj=None,is_header=False):
if is_header:
return "操作"
# 如何反向解析url
delete_url = reverse("%s_%s_change" % self.app_model_name, args=(obj.pk,))
return mark_safe("<a href='%s'>删除</a>"%delete_url) list_display = ["id","title","price",edit,delete] # z这个list_display只针对Book表
# 自制注册功能(admin表的注册
site.register(Book,BookConfig)
stark.py
在site模板提前取值
from django.conf.urls import url
from django.shortcuts import HttpResponse,render class ModelSatrk(object): # 针对某张表的样式
list_display=[] # 提供给用户自己定制显示字段
def __init__(self,model,site):
# http://127.0.0.1:8000/stark/app01/book/
self.model=model # 获取是当前哪张表对应的样式类对象(用户访问当前类
self.site=site # 拿到一个全局的单例对象
self.app_model_name=(self.model._meta.app_label,self.model._meta.model_name)
------------------------
header_list.append(self.model._meta.model_name.upper())
所以,接下来添加复选框
----
当默认样式一定要有["id","title","price",] 这3个字段,怎么操作

这3部分不需要用户去定制
定义一个新的空列表
def get_list_display(self):
new_list_display=[] # [checkbox,"__str__",edit,delete] 将list_display里的str添加过去
new_list_display.extend(self.list_display) # self.list_display是一个列表,将一个列表添加进一个列表
new_list_display.append(ModelSatrk.edit)
new_list_display.append(ModelSatrk.delete)
new_list_display.insert(0,ModelSatrk.checkbox) # insert,第一个放位置
return new_list_display # [checkbox,"__str__",edit,delete]
展示数据信息和表头信息都用这个
stack组件03的更多相关文章
- Flutter——Stack组件(层叠组件)、Align组件、Positioned组件
Stack 表示堆的意思,我们可以用 Stack 或者 Stack 结合 Align 或者 Stack 结合 Positiond 来实现页面的定位布局. Stack组件 常用于两个子元素. Stack ...
- stark组件03
优化代码 1:页面的增删改查url反转的封装到类里:ModelSatrk # 编辑页面的url def get_edit_url(self,obj): edit_url = reverse(" ...
- Flutter 页面布局 Stack层叠组件
Stack 表示堆的意思,我们可以用 Stack 或者 Stack 结合 Align 或者 Stack 结合 Positiond 来实现页面的定位布局 属性 说明 alignment 配置所有子元素的 ...
- 11Flutter页面布局 Stack层叠组件 Stack与Align Stack与Positioned实现定位布局
/* Flutter 页面布局 Stack层叠组件: Stack与Align Stack与Positioned实现定位布局: Flutter Stack组件: Stack表示堆得意思,我们可以用Sta ...
- 定位布局 Stack 层叠组件 Stack 与 Align Stack 与 Positioned 实现
一.Flutter Stack 组件 Stack 表示堆的意思,我们可以用 Stack 或者 Stack 结合 Align 或者 Stack 结合 Positiond 来实现页面的定位布局 align ...
- 一篇带你看懂Flutter叠加组件Stack
注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 Stack Stack组件可以将子组件叠加显示,根据子组件 ...
- 2690036 - SAP HANA 2.0 SPS 03 Database Revision 034
Symptom This is the SAP Release Note for SAP HANA 2.0 Database Revision 034 (2.00.034.00) of the SAP ...
- Flutter学习笔记(23)--多个子元素的布局Widget(Rwo、Column、Stack、IndexedStack、Table、Wrap)
如需转载,请注明出处:Flutter学习笔记(23)--多个子元素的布局Widget(Rwo.Column.Stack.IndexedStack.Table.Wrap) 上一篇梳理了拥有单个子元素布局 ...
- 【Flutter实战】六大布局组件及半圆菜单案例
老孟导读:Flutter中布局组件有水平 / 垂直布局组件( Row 和 Column ).叠加布局组件( Stack 和 IndexedStack ).流式布局组件( Wrap )和 自定义布局组件 ...
随机推荐
- C++ 单词接龙
问题描述: 拉姆刚刚开始学习英文字母,对单词排序很感兴趣,他能够迅速确定是否可以将这些单词排列在一个列表中,使得该列表中任何单词的首字母与前一个单词的尾字母相同,力能编写一个计算机程序帮助拉姆进行判断 ...
- mysql慢查询和php-fpm慢日志
MySQL慢查询 在web开发中,我们经常会写出一些SQL语句,一条糟糕的SQL语句可能让你的整个程序都非常慢,超过10秒一般用户就会选择关闭网页,如何优化SQL语句将那些运行时间 比较长的SQL语句 ...
- java中把指数形式的数字转为正常形式显示
/** * 当浮点型数据位数超过10位之后,数据变成科学计数法显示.用此方法可以使其正常显示. * @param value * @return Sting */ public static Stri ...
- OpenDayLight "Error executing command: java.lang.NullPointerException"问题解决
参考: Fedora 21 mostly working but NullPointerException at Karaf shell 在使用ODL的时候,安装功能组件时出现: Error exec ...
- 深入理解Java枚举类型(enum)
https://blog.csdn.net/javazejian/article/details/71333103 深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(en ...
- spring mvc: 资源绑定视图解析器(不推荐)
spring mvc: 资源绑定视图解析器(不推荐) 不适合单控制器多方法访问,有知道的兄弟能否告知. 访问地址: http://localhost:8080/guga2/hello/index 项目 ...
- centos7里没有ifcfg-eth0只有 ifcfg-ens33(没有Eth0网卡)
https://www.cnblogs.com/feixiangtk/p/6819118.html CentOS7系统安装完毕之后,输入ifconfig命令发现没有eth0,不符合我们的习惯.而且也无 ...
- Chrome自动化搭建
工具安装: 1.selenium-java-2.53.0-srcs.jar 2.selenium-java-2.53.0.jar 3.下载chromedriver.exe(下载地址:http://ch ...
- WPF 回车转Tab实现跳转
1.重写窗体的KeyDown事件 protected override void OnKeyDown(KeyEventArgs e) { if (e.Key == Key.Enter) { // Mo ...
- SpringMVC之ModelAndView的 jsp值在浏览页面不显示
Tomcat运行后浏览器上显示的结果! <%@ page isELIgnored="false" %>改变后问spring mvc开发过程中, 经常会给model ad ...