一  使用环境

  开发系统: windows

  IDE: pycharm  

  数据库: msyql,navicat

  编程语言: python3.7  (Windows x86-64 executable installer)

  虚拟环境: virtualenvwrapper

  开发框架: Django 2.2

二 Django Admin 在内联中覆盖保存方法(admin.TabularInline)

1.在你的app下新建一个py文件: inlineforms.py

from django.forms.models import BaseInlineFormSet
from A001jcxx.models import CompanyEmail # django admin在内联中覆盖保存方法
# 级联企业邮箱自动增加编号
class CompanyEmailFormset(BaseInlineFormSet):
def save_new(self, form, commit=True):
obj = super(CompanyEmailFormset, self).save_new(form, commit=False)
# 在这里你可以从请求中添加任何你需要的东西
ret = CompanyEmail.objects.exists() # 判段表中有值没有
if not ret:
number = 'EM0001'
else:
邮箱编号 = CompanyEmail.objects.last().邮箱编号 # 取最后一条人员编号
number = 'EM' + str(int(邮箱编号[2:]) + 1).zfill(4)
obj.邮箱编号 = number
commit = True
if commit:
obj.save()
return obj

2.在admin.py你的内联类中,也可以继也没有(admin.StackedInline),这样内联表的显示方式就不样,一个字段横着排列,一个是竖着提列.

# 03-01级联企业邮箱(单独创建class,继承TabularInline)
class EmailInline(admin.TabularInline):
model = CompanyEmail # 关联的表
extra = 1 # 增加时默认增加几个邮箱
exclude = ('删除标记', '邮箱编号') # 不显示字段
formset = CompanyEmailFormset # 增加编号设置 # 增加编号方法
def get_formset(self, request, obj=None, **kwargs):
formset = super(EmailInline, self).get_formset(request, obj, **kwargs)
formset.request = request
return formset

说明:

我要在企业表中内联编辑对应的一对多邮箱表,邮箱表中的邮箱编号是自动生成的,这个方法就是在内联表中执行自动生成并保存到数据库的方法.

1.增加时,隐藏了'邮箱编号',如果不用方法,手动写就可以在邮箱表中保存.

2.增加后到邮箱表中查看,"邮箱编号"就会自动生成EM0001,如果不用内联覆盖保存方法,此时"邮箱编号"就会是空.

Django Admin 在内联中覆盖保存方法(admin.TabularInline)的更多相关文章

  1. django中将views.py中的python方法传递给html模板文件

    常规的模板渲染 from django.db import models # Create your models here. class ArticalType(models.Model): cap ...

  2. Django 向数据表中添加字段方法

    在模型order中添加字段discount字段,并给予初始值0 方法: 先在models.py中修改模型 添加 discount = models.DecimalField(max_digits=8, ...

  3. django学习-20.python3中的特殊方法【__str__】的作用

    目录结构 1.前言 2.[__str__]特殊方法的具体使用 2.1.当使用print打印一个类被实例化后生成的对象的时候,若类里有定义了[__str__]特殊方法,是打印出这样的数据:[__str_ ...

  4. java中的hashcode方法作用以及内存泄漏问题

    本文装载:http://hi.baidu.com/iduany/item/6d66dfc9d5f2da1650505870 hashCode()方法的作用&使用分析 一直以来都想写篇文章来说明 ...

  5. Django---ORM的常用字段和自定义字段,DjangoORM字段与数据库类型对应,字段参数和Meta的参数,Django的admin操作,13中orm操作方法,单标的双下方法

    Django---ORM的常用字段和自定义字段,DjangoORM字段与数据库类型对应,字段参数和Meta的参数,Django的admin操作,13中orm操作方法,单标的双下方法 一丶ORM常用字段 ...

  6. django的admin或者应用中使用KindEditor富文本编辑器

    由于django后台管理没有富文本编辑器,看着好丑,展示出来的页面不美观,无法做到所见即所得的编辑方式,所以我们需要引入第三方富文本编辑器. 之前找了好多文档已经博客才把这个功能做出来,有些博客虽然写 ...

  7. Quartus II中FPGA的管脚分配保存方法

    一.摘要 将Quartus II中FPGA管脚的分配及保存方法做一个汇总. 二.管脚分配方法 FPGA 的管脚分配,除了在QII软件中,选择“Assignments ->Pin”标签(或者点击按 ...

  8. quartus2中FPGA管脚分配保存方法(转)

    一.摘要 将Quartus II中FPGA管脚的分配及保存方法做一个汇总. 二.管脚分配方法 FPGA 的管脚分配,除了在QII软件中,选择“Assignments ->Pin”标签(或者点击按 ...

  9. Django 资源 与 知识 Django中自建脚本并使用Django环境 model中的save()方法说明 filter()用法

    Django 资源 与 知识 Django中自建脚本并使用Django环境 model中的save()方法说明 filter()用法 2018/11/06 Chenxin 资料说明 Django基础入 ...

随机推荐

  1. docker --- (入门必读)

    容器 容器就是一个视图隔离.资源可限制.独立文件系统的进程集合.所谓"视图隔离"就是能够看到部分进程以及具有独立的主机名等:控制资源使用率则是可以对于内存大小以及 CPU 使用个数 ...

  2. 数据库备份和恢复---MariaDB

    定义 数据备份:将源数据再次存储到新的位置 数据恢复:将备份好的数据重新应用到数据库系统 常见的备份类型: 按照是否备份整个数据集来分 完全备份:备份从开始到执行备份这一时刻的所有数据集 增量备份:备 ...

  3. 3.DHCP原理

    1.DHCP服务器给首次接入网络的客户端分配网络参数的工作原理 只有跟DHCP客户端在同一个网段的DHCP服务器才能收到DHCP客户端广播的DHCP DISCOVER报文.当DHCP客户端与DHCP服 ...

  4. CCF-命令行选项(模拟)

    命令行选项   问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些选项.每个命令行由若干个字符串组成,它们之间恰好由一个空格分隔.这些字符串中的第一个为该命令行工具的名字,由小写字母组 ...

  5. Maven多模块的2种依赖管理策略

    在Maven多模块的时候,管理依赖关系是非常重要的,各种依赖包冲突,查询问题起来非常复杂,于是就用到了<dependencyManagement>, 示例说明, 在父模块中: <de ...

  6. 前端html基础学习笔记二

    表单 1 : 表单标签 <form></form> 属性 : action = '接口地址' method = 'get / post' name = '表单名称' 2 : 表 ...

  7. cassandra权威指南读书笔记--Cassandra架构(2)

    环和令牌cassandra的数据管理是用一个环来表示.为环中的每个节点分配一or多个数据范围,用token描述.token由64位整数ID表示,范围-2^(63)~2^(63)-1.使用对分区键进行一 ...

  8. Flink-v1.12官方网站翻译-P011-Concepts-Overview

    概念-概览 实践培训解释了作为Flink的API基础的有状态和及时流处理的基本概念,并提供了这些机制如何在应用中使用的例子.有状态的流处理是在数据管道和ETL的背景下介绍的,并在容错部分进一步发展.在 ...

  9. 说说 JavaScript中 call和apply

    下面有关JavaScript中 call和apply的描述,错误的是? call与apply都属于Function.prototype的一个方法,所以每个function实例都有call.apply属 ...

  10. Equal Numbers Gym - 101612E 思维

    题意: 给你n个数vi,你有k次操作.每一次操作你可以从n个数里面挑一个数,然后使得这个数乘于一个正整数.操作完之后,这n个数里面不同数的数量就是权值.你要使得这个值尽可能小. 题解: 如果a%b== ...