zoukankan      html  css  js  c++  java
  • python+Django CRM客户关系管理系统开发(九)--只读字段处理

    一、本节目标

    前几节,我们实现了数据展示,数据增删改查,本节我们完善一下,对于一些只读字段,只让它显示到前端,不让人对其进行修改。

    二、功能分析

    1、admin的实现方式是,在自定义admin里添加readonly_fields字段,然后在admin里修改的时候,对应的字段就只是显示在前端,不会被修改。

     admin上显示如图所示,只有显示,没有修改功能:

    三、功能开发

    1、在baseadmin里添加readonly_fields:

    2、在自定义admin里添加对应的字段

     3、由于修改表单,是通过动态生成显示在前端页面的,因此,修改还得从那里修改。

    在动态生成form里,排除只读字段,再通过前端把只读字段显示在前端即可。这样修改from的时候不会验证只读字段。

     4、同时,将只读字段在前端获取并显示在前端

    获取对应字段的值,这里使用反射getattr这个功能,因此还得需要在tag里生成,然后返回给前端:

     前端引入此tag,修改页面添加:

    5、此时修改功能,只读字段显示正常:

    目前对于下拉框,只显示了序号,没有显示值,这个先记录以后再解决。

    6、此时添加功能会报错,因为只读字段status没有值

     因此,需要做个判断,如果是添加表单,就不要只读字段,如果是修改表单,就带着只读字段:

     add视图添加一个字段form_add = True

    此时添加和修改功能均正常可用。

  • 相关阅读:
    事件基础(一)
    添加/删除子元素的笔记
    面向对象的三大特性
    初识面向对象
    异常处理
    模块和包
    Python中常用模块一
    递归函数
    内置函数、匿名函数
    迭代器,生成器
  • 原文地址:https://www.cnblogs.com/realizetomoney/p/13909590.html
Copyright © 2011-2022 走看看