Django学习11 -- Admin页面级联选择

系统用的越多问题也就越多,用户提出的要求也越多,问题和要求积攒多了总有撑不住的时候,只得重新筛选问题进行维护 。
偷懒并不总是能“有效躲避”问题,学习还要继续、继续 。。。。。。
问题描述:Admin页面级联选择
解决方案
解决方案1:-smart- -- 《学习8 -- 添加个人应用》中提到过这种方法 。
应用在早期版本,版本需要对源码进行修改,对数据库设计的级联关系也有要求 。--一直未实际应用
解决方案2:使用JS(,Ajax)对页面数据进行处理
不常用此技术,从网上照抄了代码,照葫芦画瓢,进行修改
参考文档 --,)
建将并寻找存储字段关联关系,此处使用和task进行说明(一个可以有多个task)使用 admin后台管理程序生成页面(如下图):建model --admin注册 -- admin生成页面 -- view处理页面数据显示逻辑

Django学习11 -- Admin页面级联选择

文章插图
确认级联关系:当选择时,task 中只显示与相关联的数据view页面处理数据逻辑
## get task list by select project in pagedef gettasks(request):if request.method == 'GET':-- 当project选择值变化时,get到对应的值-- post方法是否可用?没研究project=request.GET.get('selpro')-- 页面ajax data数据设置if project:data = http://www.kingceram.com/post/list(Task.objects.filter(project=project).values("taskname"))-- get task by select projectreturn JsonResponse(data, safe=False)
Get方法获取参数,需要对view方法配置对应的URL
url('gettask/', view.gettasks,name='gettask'), -- 与veiw方法对应
设计页面,此处使用 Admin框架自带后台管理页面模板 --参考 的使用
*在目录下新建.html页面,对Admin .html进行扩展(为了方便管理建将了对应的目录)
*扩展 模块,在页面初始化模块完成后、操作页面元素时对操作和数据进行处理
*获取页面元素ID(与实际中设置相关): --,task --
Django学习11 -- Admin页面级联选择

文章插图
*html页面处理
{% extends "admin/change_form.html" %}-- 扩展原有页面,django Template灵活性体现{% load i18n admin_urls static admin_modify %}{% block after_field_sets %}-- 扩展对应模块;-- 是否可以在其他模块处理,同样可以对页面进行处理,未做尝试{% endblock %}
问题回顾:从最初设计系统开始,这个问题应一直存在,一直以不会、不熟悉拖延着 。后来使用时总是出现对应关联关系选择错误的情况,使用者反应“很不满意”,而后台修改错误的工作量越来越大,不得已才查看帮助、参考文档进行修改 。
后续工作:
补充知识 JS(, Ajax),--估计还要看使用者反馈,要不要偷懒;页面出错或刷新后/task如何响应,扩展哪个block;
知识扩展:模版继承 -- 待续
{%“” %}
{% extends "base.html"%}-- extend parent template{% block title %}-- extend block{{ block.super }}-- override or overwrite or cover parent template{% endblock %}-- end extend
{%“”%}
【Django学习11 -- Admin页面级联选择】包含另一模板