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 )和 自定义布局组件 ...
随机推荐
- 拓扑排序 - hdu 1285(普通和优先队列优化)
2017-09-12 19:50:58 writer:pprp 最近刚开始接触拓扑排序,拓扑排序适用于:无圈图的顶点的一种排序, 用来解决有优先级别的排序问题,比如课程先修后修,排名等. 主要实现:用 ...
- ACM输入函数测试 - scanf cin 优化的输入
2017-08-27 10:26:19 writer:pprp 进行测试如下四种输入方式: 1.scanf 2.cin 3.用了ios::sync_with_stdio(false);的cin 4.自 ...
- 04_Storm编程上手_WordCount集群模式运行
1. 要解决的问题:代码打包 前一篇的代码,在IDEA中通过maven工程创建,通过IDEA完成代码打包 1)File -> Project Structure 2) 选择Artifacts, ...
- Nagios安装完后status map,trends等页面访问出错之解决
首先,可以进入/usr/local/nagios/sbin, [root@localhost sbin]# ldd statusmap.cgi linux-vdso.so. => (0x0000 ...
- 经典C#面试题
1.在下面的代码中,如何引用命名空间fabulous中的great? namespace fabulous{// code in fabulous namespace}namespace super{ ...
- python+opencv+pyqt5控制摄像头在Qlabel上显示
import cv2 import numpy as numpy from PIL import * import sys from PyQt5.QtWidgets import * from PyQ ...
- JSON的多样格式
//JSON – Properties 方便前台列表显示 [{"年月":2002.01,"北京分公司":2214688,"河北分公司":3 ...
- day38 爬虫之Scrapy + Flask框架
s1617day3 内容回顾: Scrapy - 创建project - 创建爬虫 - 编写 - 类 - start_urls = ['http://www.xxx.com'] - def parse ...
- 【Error】 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
mysql 登录输入密码有时会碰到如题的错误. 错误描述: Error 1045 (28000): Access denied for user 'root'@'localhost' (using p ...
- 【Windows】netsh动态配置端口转发
文章转载自傲风 使用多个虚拟机,将开发环境和工作沟通环境分开(即时通,办公系统都只能在windows下使用-),将开发环境的服务提供给外部访问时,需要在主机上通过代理配置数据转发. VirtualBo ...