CRM客户关系管理系统(九)
管理系统 CRM 客户关系
2023-09-11 14:19:33 时间
第九章、filter_horizontal优化和kingadmin删除功能
9.1.filter_horizontal优化
(1)添加Choose ALL 和Remove ALL
table_obj_change_component.html
js代码
function MoveAllElements(from_id,to_id) { console.log( $("#"+from_id).children()) $("#"+from_id).children().each(function () { MoveSelectedOption(this,to_id); }) }
(2)添加过滤框功能
js代码
function FuzzSearch(ele){ console.log($(ele).val()) var search_text = $(ele).val().toUpperCase(); $(ele).next().children().each(function () { if ( $(this).text().toUpperCase().search(search_text) != -1){ $(this).show(); }else { $(this).hide(); } }) }
9.2.kingadmin对象删除功能开发
(1)kingadmin/urls.py
#删除 url(r'^(\w+)/(\w+)/(\d+)/delete/$', views.table_obj_delete,name='obj_delete'),
(2) table_obj_change_component.html
(3)kingamdin/views.py
def table_obj_delete(request,app_name,model_name,obj_id): '''删除功能''' admin_class = site.enable_admins[app_name][model_name] obj = admin_class.model.objects.get(id=obj_id) return render(request,'kingadmin/table_obj_delete.html',locals())
(4)新建table_obj_delete.html
{#kingadmin/templates/kingadmin/table_obj_delete.html#} {% extends 'kingadmin/index.html' %} {% load kingadmin_tags %} {% block right-content-container %} <h2 class="page-header">{% get_model_name admin_class %}</h2> <h4 class="page-header">删除{{ form_obj.instance }}</h4> <div> delete {{ obj }} </div> {% endblock %}
删除的时候显示要被删除对象的所有关联对象
(5)kingadmin_tags.py
@register.simple_tag def display_all_related_objs(obj): """ 显示要被删除对象的所有关联对象 """ ele = "<ul><b style='color:red'>%s</b>" % obj #获取所有反向关联的对象 for reversed_fk_obj in obj._meta.related_objects: #获取所有反向关联对象的表名 related_table_name = reversed_fk_obj.name # 通过表名反向查所有关联的数据 related_lookup_key = "%s_set" % related_table_name related_objs = getattr(obj,related_lookup_key).all() ele += "<li>%s<ul> "% related_table_name #get_internal_type(),获取字段的类型,如果是m2m,就不需要深入查找 if reversed_fk_obj.get_internal_type() == "ManyToManyField": # 不需要深入查找 for i in related_objs: ele += "<li><a href='/kingadmin/%s/%s/%s/change/'>%s</a> 记录里与[%s]相关的的数据将被删除</li>" \ % (i._meta.app_label,i._meta.model_name,i.id,i,obj) #如果不是m2m,就递归查找所有关联的数据 else: for i in related_objs: ele += "<li><a href='/kingadmin/%s/%s/%s/change/'>%s</a></li>" %(i._meta.app_label, i._meta.model_name, i.id,i) #递归查找 ele += display_all_related_objs(i) ele += "</ul></li>" ele += "</ul>" return ele
(6)table_obj_change_component.html
(7)table_obj_delete.html
{#kingadmin/templates/kingadmin/table_obj_delete.html#} {% extends 'kingadmin/index.html' %} {% load kingadmin_tags %} {% block right-content-container %} <h2 class="page-header">{% get_model_name admin_class %}</h2> <h3 class="page-header alert alert-danger">你确定要删除吗?{{ form_obj.instance }}</h3> <div> delete {{ obj }} {% display_all_related_objs obj as all_related_obj_eles %} {{ all_related_obj_eles|safe }} <form method="post"> {% csrf_token %} <input type="submit" class="btn btn-danger" value="确认删除"> <a class="btn btn-info" >返回</a> </form> </div> {% endblock %}
删除的时候会提示所有关联对象
修改分页(设置默认显示多少条数据)
kingamdin/admin_base.py
class BaseKingAdmin(object): list_display = [] list_filter = [] search_fields = [] #只读 readonly_fields = [] filter_horizontal = [] list_per_page = 5
kingadmin/views.py
相关文章
- 基于 C++和 MySQL 实现(控制台)汽销售管理系统【100010538】
- 基于Java(Jsp+servelet+Javabean)+MySQL实现图书管理系统【100010229】
- 基于Java(Struts2 框架)+Mysql实现(Web)学生成绩管理系统【100010053】
- 基于Java实现(APP)智能停车场管理系统【100010044】
- 基于SpringMVC+Ext.js的权限管理系统(无权限框架)
- Qt编写气体安全管理系统17-记录清理
- Qt编写气体安全管理系统16-云端同步
- Qt编写气体安全管理系统26-组态设计
- 打印管理系统
- CRM客户关系管理系统(十三)
- CRM客户关系管理系统(一)
- CRM客户关系管理系统(八)
- CRM客户关系管理系统(六)
- CRM客户关系管理系统(五)
- Java高手速成 | 数据库实训:图书馆管理系统建模
- 实现工业4.0必不可少的4大信息化管理系统--- PLM SCM CRM ERP
- 基于Javaweb的超市订单管理系统(Eclipse版)
- Dynamics CRM 2011 2013-(An error occurred while opening mailbox xxx@xx.com Microsoft.Crm.Tools.Email.Providers.)
- 分享一个基于ligerui的系统应用案例ligerRM V2(权限管理系统)(提供下载)