stark组件开发之添加功能实现】的更多相关文章

添加功能,还是使用, form 组件来完成!  并且 完成添加之后,需要保留原搜索条件. def memory_url(self): '''用于反向生成url, 并且携带,get请求的参数,跳转到下一个网页''' name = "%s:%s" % (self.site.namespace, self.get_add_url_name) base_url = reverse(name) # 记录原搜索条件 if not self.request.GET: add_url = base_u…
编辑功能.和添加一样! 唯一不同的就是, 需要编辑一个指定的  记录.这就需要,在列表页面, 渲染编辑的时候,添加一个 id 值: class UserInfoHandler(StartHandler): # 自定制,展示页面, 需要展示的东西. 根据每张表的不同. 自己编写! list_display = [StartHandler.display_checkbox, "name", "age", "depart", get_choice_tx…
添加: 需求: 根据用户的权限, 决定是否,有添加按钮.  通过配置进行定制,预留钩子进行权限的判断. class StartHandler(object): ..................... has_add_btn = True # 指定配置,默认显示. 用户在子类中,自定制是否显示 def get_add_btn(self): '''预留钩子,子类中重写该方法. 根据权限的判断是否显示添加按钮''' if self.has_add_btn: return "<a class=…
先看一张页面展示的效果图: 看一看我的  model 表!是什么样子: 看一看数据库是什么样子: 看 页面展示图,有表头. 有数据.模型表中,每一个字段, 都指定了 verbose_name. 如何解决? 每个子类中,自定义 list_display 用于指定, 需要展示. 表中的哪个字段(这个名字和表中的字段需要,对应上. 不能错.)class UserInfoHandler(StartHandler): list_display = ["name", "age"…
已经解决的,自定义的扩展函数,功能.但是 不可能返回. 一个 固定的页面把!  应该是,点击那条 记录之后的编辑, 就会跳转到相应的,编辑页面.所以 这个标签的  <a href="/stark/app01/userinfo/change/1/">编辑</a>  他应该是这个样子! stark  是主路由中, 路由分发的  url 路径: app01/userinfo/change/1/这个 应该是 ,根据反向解析. 的来的路径.  最后的 参数 1 是. 每条…
class UserInfoHandler(StartHandler): ....... # 批量操作功能的列表,添加则显示, 使用此功能.需要将StartHandler.display_checkbox 添加到list_display 中 action_list = [StartHandler.action_multi_delete, StartHandler.action_multi_init] ....... class StartHandler(object): ........ def…
页面效果,只是样式.这个好解决!yield 的时候. 返回几个样式出去就好了! 并且前端写上一些样式的css {% if search_group_row_list %} <div class="panel panel-default"> <div class="panel-heading"> <i class="fa fa-filter" aria-hidden="true"></i…
- 关键字搜索. 可以做到的效果是, 输入20. 后太通过 Q()  函数. 来实现.  搜索是一个大的问题点. -  要想实现组合搜索, 首先要 明确的一点是. 在我当前的页面上, 正在进行展示的是 那一张表的数据.- 并且, 既然是搜索, 那么必然的一点就是. 我的搜索条件, 必须是 和 我这张表中的,字段由关系的. - 比如, UserInfo 表. 那么 名字就是一个 可以用作搜索的字段. 年龄也是一个可以用作搜索的字段. - 组合搜索,就是. 将 name 和 age 这两个字段, 甚…
- 模糊搜索: 在页面生成一个表单.  以get 方式, 将数据提交到.当前查看页面. 后台接收数据,然后进行筛选过滤. 着个也需要,用户自定制!   定义一个  search_list  这个值,默认为空. 页面进行判断,为空就不显示. 搜索框!如果,用户 定义了这个列表, 那么就显示! class StartHandler(object): .......... search_list = [] # 方便,用户自己定制.关键字搜索的条件,和如果用户不配置,页面不显示搜索框 def get_s…
""" 分页组件 """ class Pagination(object): def __init__(self, current_page, all_count, base_url, query_params, per_page=20, pager_page_count=11): """ 分页初始化 :param current_page: 当前页码 :param per_page: 每页显示数据条数 :param…
 路由问题, 已经解决! 然后就是视图函数的问题了: 不想重复写的解决途径就是, python  类的继承了! 写一个基类, 基类定义 增删改查. 然后其他的,全部去继承他! from django.urls import path, re_path from django.http import HttpResponse, JsonResponse from django.shortcuts import render, redirect, reverse from app01 import…
上一篇,我只是做了. 默认的显示. def __iter__(self): '''默认显示. 用户可以自定制''' if isinstance(self.queryset_or_tuple, list): for item in self.queryset_or_tuple: yield "<a href='#'>%s</a>" % item[1] else: for item in self.queryset_or_tuple: if isinstance(i…
class StartHandler(object): .......... ordered_list = [] # 排序规则由 用户指定. def get_ordered_list(self): return self.ordered_list or ["id", ] # 默认使用 id 进行排序 per_page = 10 # 默认每页显示,多少数据. 也可在子类中,自行定制 def check_list_view(self, request):# ################…
对于展示页面, 可能需要显示一些. 数据库中,没有的字段. 比如, 删除按钮, 编辑按钮.  这个数据库,是没有的. 所以,可能就需要, 添加一个这个东西.  比如我在渲染的时候, 给他添加两个函数进去. 这个两函数就用来,编辑删除. 基类: class StartHandler(object): list_display = [] def __init__(self, model_class, prve): self.model_class = model_class self.prev =…
要实现,这个方法.子类中 list_diplay 这个列表, 就不能够写死.他应该是 可以根据.用户的不同,返回不同的值. 所以 就需要一个函数, 可以进行判断当前用户是谁. 并且往这个列表中添加,他可以查看的东西.所以,我在 StartHandler 基类中. 定义了一个方法,就是用于返回.这个list_display 列表. class StartHandler(object): list_display = [] def __init__(self, model_class, prve):…
数据的获取,上一篇,已经有了!然后就是,如何进行展示的问题.到了展示这里,又有了新的问题, 因为从数据库,取得的数据. 分为 queryset 和 tuple 两种数据结构.tuple 中,只是字符串. queryset中确实,model对象. 而且  这些渲染出来后,全部都是 a 标签. 是可以点击的, 所以 href 超链接属性,是必须要有的. 而且还有一点是,默认选中. 用户选择之后, 应该有一个提示,我当前选择的是那个标签.  而且因为组合搜索,先选中的条件,不能够被刷新. 这种的 如果…
app01\model.py from django.db import models # Create your models here. class Depart(models.Model): id = models.AutoField(primary_key=True) title = models.CharField(verbose_name="部门名称", max_length=32) class UserInfo(models.Model): id = models.Aut…
    前情提要:Django  stark 组件开发的 增删改,  model_form组件的使用 form组件的回顾 一:list_display_link  创建 功能描述:   使包含的字段能用进行跳转(编辑界面) 1:在strak组件中设置对应的接口 2:在注册表中填写注册的内容 注意该内容要对应自制列中的属性元素,即model的属性名 3:在stark中给model普通属性附加a标签    4:效果图 ,即实现了反向解析,又实现了编辑功能     二:form 组件回顾 1: for…
###############  admin基本认识和常用的定制功能    ############### stark组件 对admin的基本认识 1,就是一个app,嵌入到了django里面,你可以在settings中看到 2,就是一个web后台管理工具,使用它可以更加的方便 3,通常我们在生成项目时会在 urls.py 中自动设置好url访问路径 urlpatterns = [ url(r'^admin/', admin.site.urls) ] 4,启动开发服务器,然后在浏览器中访问 ht…
一.先看下什么django的admin的pop到底是个什么东西 其实就是这么一个东西, a.在添加页面,在一对多和多对多的项后加了一个+号 b.点击这个加号,会弹出对应的添加 页面,在新的添加 c.添加完成后,新打开的页面自动关闭,然后把新添加数据的添加到对应的框中 二.下面我们来实现pop功能 a.知识点1,实现点击按钮,弹出一个新的窗口这个功能 首先我们写一个如下的html文件,点击这个文件,会重新打开一个窗口 <!DOCTYPE html> <html lang="en&…
admin源码解析 单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场. 比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 AppConfig 的类来读取配置文件的信息.如果在程序运行期间,有很多地方都需要使用配置文件的内容,也就是说,很多地方都需要创建 AppConfig 对象的实例,这就导致系统中存在多个 AppConfig 的实例…
stark组件是仿照django的admin模块开发的一套组件,它的作用是在网页上对注册的数据表进行增删改查操作. 一.配置 1.创建stark应用,在settings.py中注册stark应用 stark APP专门用于存放自定义组件的核心代码. manage.py@stark_demo > startapp stark 在settings.py文件注册stark: INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth'…
1.django的admin配置 2 stark组件开发 3.2层url分发 4.小结 1.django的admin配置 model.py from django.db import models # Create your models here. class UserInfo(models.Model): name=models.CharField(max_length=32) age=models.IntegerField() def __str__(self): return self.…
1.django的admin配置 model.py from django.db import models # Create your models here. class UserInfo(models.Model): name=models.CharField(max_length=32) age=models.IntegerField() def __str__(self): return self.name class Book(models.Model): title=models.…
写一个stark组件仿造admin的功能 1:新建一个stark的app 问题:在django每次启动会扫描目录下所有的admin文件,需要扫描项目目录下的每个stark文件,我们需要怎么做 1:看在admin里面如何操作 2.每次启动项目都会扫描app下的admin.py文件 3.在我们app下也仿写该功能…
一.内容回顾 类可否作为字典的key 初级 举例: class Foo(object): pass _registry = { Foo:123 } print(_registry) 执行输出: {<class '__main__.Foo'>: 123} 说明说法是成立的. 中级 class User(object): pass class Role(object): pass class Bar(object): def __init__(self,b): self.b = b _regist…
今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1)         邮件基础理论知识 2)         邮件发送相关.NET类库 3)         介绍我开发的一个发送邮件的小组件(MailHelper) 4)         MailHelper组件的一个示例以及几种方式发邮件的优劣测试 示例及组件源码:(有几位园友反馈IE浏览器解析不出下载地址) .NET开发邮件发送功能的全面教程(含邮件组件…
效果图: 分页部分代码: # 1.分页处理 all_count = self.model_class.objects.all().count() query_params = request.GET.copy() # 深copy query_params._mutable = True # query_params默认不可修改 pager = Pagination( current_page=request.GET.get('page'), all_count=all_count, base_u…
目录 MVC5网站开发之一 总体概述 MVC5 网站开发之二 创建项目 MVC5 网站开发之三 数据存储层功能实现 MVC5 网站开发之四 业务逻辑层的架构和基本功能 MVC5 网站开发之五 展示层架构 MVC5 网站开发之六 管理员 1.登录.验证和注销 MVC5 网站开发之六 管理员 2.添加.删除.重置密码.修改密码.列表浏览 MVC5 网站开发之七 用户功能 1.角色的后台管理 MVC5 网站开发之七 用户功能 2 用户添加和浏览 MVC5 网站开发之七 用户功能 2 .1用户资料的修改…
本次实现栏目的浏览.添加.修改和删除. 栏目一共有三种类型. 常规栏目-可以添加子栏目,也可以添加内容模型.当不选择内容模型时,不能添加内容. 单页栏目-栏目只有一个页面,可以设置视图. 链接栏目-栏目为一个链接,点击后转到相应链接. 在视图中原本栏目的树形显示插件使用Bootstrap TreeView 1.2.0(MVC5 网站开发之六 管理员 2.添加.删除.重置密码.修改密码.列表浏览),后来使用中发现zTree使用起来更习惯,所以更换成zTree了. 目录 MVC5网站开发之一 总体概…