路由问题, 已经解决! 然后就是视图函数的问题了: 不想重复写的解决途径就是, python  类的继承了! 写一个基类, 基类定义 增删改查. 然后其他的,全部去继承他! from django.urls import path, re_path from django.http import HttpResponse, JsonResponse from django.shortcuts import render, redirect, reverse from app01 import…
效果图: Handler类里处理的增删改查.路由分发.给URL设置别名等包括以后还要添加的很多功能,每一个数据库的类都需要,所以我们要把Handler提取成一个基类.提取成基类后,每一个数据表都可以继承这个基类,然后有需要的话可以在这个基类的基础上重写函数,定制自己的方法. Handler下新增函数get_urls是为了解耦Stark类下的get_urls 一.stark组件 stark/service/core_func.py from django.urls import re_path f…
对于展示页面, 可能需要显示一些. 数据库中,没有的字段. 比如, 删除按钮, 编辑按钮.  这个数据库,是没有的. 所以,可能就需要, 添加一个这个东西.  比如我在渲染的时候, 给他添加两个函数进去. 这个两函数就用来,编辑删除. 基类: class StartHandler(object): list_display = [] def __init__(self, model_class, prve): self.model_class = model_class self.prev =…
先看一张页面展示的效果图: 看一看我的  model 表!是什么样子: 看一看数据库是什么样子: 看 页面展示图,有表头. 有数据.模型表中,每一个字段, 都指定了 verbose_name. 如何解决? 每个子类中,自定义 list_display 用于指定, 需要展示. 表中的哪个字段(这个名字和表中的字段需要,对应上. 不能错.)class UserInfoHandler(StartHandler): list_display = ["name", "age"…
添加功能,还是使用, 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…
已经解决的,自定义的扩展函数,功能.但是 不可能返回. 一个 固定的页面把!  应该是,点击那条 记录之后的编辑, 就会跳转到相应的,编辑页面.所以 这个标签的  <a href="/stark/app01/userinfo/change/1/">编辑</a>  他应该是这个样子! stark  是主路由中, 路由分发的  url 路径: app01/userinfo/change/1/这个 应该是 ,根据反向解析. 的来的路径.  最后的 参数 1 是. 每条…
页面效果,只是样式.这个好解决!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 这两个字段, 甚…
编辑功能.和添加一样! 唯一不同的就是, 需要编辑一个指定的  记录.这就需要,在列表页面, 渲染编辑的时候,添加一个 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=…