继昨天留下的问题

思路:

结果:

优化:

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)

------------------------

这样第一种情况结束(用户自定义样式类)
 
第二中:当用户没有定义样式类(我们需要提供一个默认样式类)

会以__str__来当默认值
admin是以这样的形式展示默认样式的:

 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的更多相关文章

  1. Flutter——Stack组件(层叠组件)、Align组件、Positioned组件

    Stack 表示堆的意思,我们可以用 Stack 或者 Stack 结合 Align 或者 Stack 结合 Positiond 来实现页面的定位布局. Stack组件 常用于两个子元素. Stack ...

  2. stark组件03

    优化代码 1:页面的增删改查url反转的封装到类里:ModelSatrk # 编辑页面的url def get_edit_url(self,obj): edit_url = reverse(" ...

  3. Flutter 页面布局 Stack层叠组件

    Stack 表示堆的意思,我们可以用 Stack 或者 Stack 结合 Align 或者 Stack 结合 Positiond 来实现页面的定位布局 属性 说明 alignment 配置所有子元素的 ...

  4. 11Flutter页面布局 Stack层叠组件 Stack与Align Stack与Positioned实现定位布局

    /* Flutter 页面布局 Stack层叠组件: Stack与Align Stack与Positioned实现定位布局: Flutter Stack组件: Stack表示堆得意思,我们可以用Sta ...

  5. 定位布局 Stack 层叠组件 Stack 与 Align Stack 与 Positioned 实现

    一.Flutter Stack 组件 Stack 表示堆的意思,我们可以用 Stack 或者 Stack 结合 Align 或者 Stack 结合 Positiond 来实现页面的定位布局 align ...

  6. 一篇带你看懂Flutter叠加组件Stack

    注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 Stack Stack组件可以将子组件叠加显示,根据子组件 ...

  7. 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 ...

  8. Flutter学习笔记(23)--多个子元素的布局Widget(Rwo、Column、Stack、IndexedStack、Table、Wrap)

    如需转载,请注明出处:Flutter学习笔记(23)--多个子元素的布局Widget(Rwo.Column.Stack.IndexedStack.Table.Wrap) 上一篇梳理了拥有单个子元素布局 ...

  9. 【Flutter实战】六大布局组件及半圆菜单案例

    老孟导读:Flutter中布局组件有水平 / 垂直布局组件( Row 和 Column ).叠加布局组件( Stack 和 IndexedStack ).流式布局组件( Wrap )和 自定义布局组件 ...

随机推荐

  1. ELK出现unassigned_shards查看及删除

    问题 用3台服务器搭建了ELK系统,有一天出现有几个索引一直无法同步,重启了elasticsearch也不行 如下图:elk-cluster一直处于red状态 解决方法 一,查看elasticsear ...

  2. java并发容器之 SynchronousQueue [转]

    SynchronousQueue 这个队列实现了 BlockingQueue接口 该队列的特点 1.容量为0,无论何时 size方法总是返回0 2. put操作阻塞,jquery插件库  直到另外一个 ...

  3. mongodb禁止外网访问以及添加账号

    未曾料到被黑客勒索比特币的戏码竟然降临到我的身上,几个月的技术积累付之一炬.怪只怪自己学艺不精,心存侥幸和无知,不过经此一役,方知网络安全防护的重要性. 一直未给自己的mongodb数据库设置账号密码 ...

  4. jquery阻止冒泡和阻止默认事件

    event.stopPropagation(); event.preventDefault(); http://www.cnblogs.com/qixuejia/archive/2013/10/10/ ...

  5. nginx页面不能正常访问排除方法

    nginx页面不能访问 nginx页面不能访问 检查服务端服务是否启动成功 在服务端使用wget和curl测试下返回的是否正常 浏览器wget或者curl等软件访问不了Ngixn页面 1. 检查服务端 ...

  6. Android Fragment解析(上)

    今天被人问到了什么是Fragment,真是一头雾水,虽然以前也用到过,但不知道它是叫这个名字,狂补一下. 以下内容来自互联网,原文链接:http://blog.csdn.net/lmj62356579 ...

  7. bzoj1014: [JSOI2008]火星人prefix splay+hash+二分

    Description 火星人最近研究了一种操作:求一个字串两个后缀的公共前缀.比方说,有这样一个字符串:madamimadam,我们将这个字符串的各个字符予以标号:序号: 1 2 3 4 5 6 7 ...

  8. 关于mybatis mapper.xml中的if判断

    场景: 页面上有搜索框进行调节查询,不同搜索框中的内容可以为空. 过程: 点击搜索,前端把参数传给后台,这是后台要把为空的参数过滤掉. 做法: 通常我们在dao层即mapper.xml中进行过滤判断操 ...

  9. grub2 windows版安装

    一.BIOS方式,grub2安装 查看磁盘情况 E:\grub-2.02-for-windows>wmic diskdrive list brief Caption DeviceID Model ...

  10. Linux命令nohup+screen 转

    如果想在关闭ssh连接后刚才启动的程序继续运行怎么办,可以使用nohup.但是如果要求第二天来的时候,一开ssh,还能查看到昨天运行的程序的状态,然后继续工作,这时nohup是不行了,需要使用scre ...