Django学习路19_is_delete属性,重写类方法,显性隐性属性
如果在 创建数据表时,使用了
objects = models.Model()
使隐形属性变为了 显性属性
则 必须要自己定义一个
继承了 models.Model 类的类,实现 管理功能 如果一个属性一直都需要使用
比如 is_delete 属性,判断 这条数据是否删除
is_delete 为 True 也就是 1 时,则表示删除了
删除了就不应该在数据库表中再次使用了
models.py 中新添加的数据表,及其继承类 class AnimalManage(models.Manager):
# 父类先声明,继承的是 models.Manager 类,需要重写 filter 方法
'''使用继承,重写原来类的方法,进行改进函数时,考虑类的继承'''
def get_queryset(self):
'''使 filter 自动具有保留 is_delete 为 0 的功能,is_delete 为 1 的自动过滤掉'''
# return super(AnimalManage,self).get_queryset()
# 对父类的方法进行修改,将 is_delete 为 0 的留下
return super(AnimalManage,self).get_queryset().filter(is_delete = False) def create(self,a_name = "Pandas"):
# 默认创建一个熊猫
'''改写创建对象语句,使用子类完成操作'''
animal = self.model()
# 创建一个模型
animal.a_name = a_name
return animal class Animal(models.Model):
# 创建一个数据表为 Animal
a_name = models.CharField(max_length=16)
# 动物名字
is_delete = models.BooleanField(default=False)
# 设置是否删除数据,默认不删除,数据库中表示为 0 objects = AnimalManage()
# 设置管理者,objects 是什么名字
# 类名.定义的名字.all()
添加到数据库表中的数据 其中 is_delete 为 1 的表示已经删除的数据 is_delete 是需要的数据

在 urls.py 中添加参数 url(r'getanimals',views.getanimals) 在 views.py 中添加 views. 后面的函数名 def getanimals(request):
animals = Animal.objects.all()
# 这里使用的是子类的实例化对象 objects
context = {
'animals':animals
}
'''
animal = Animal.objects.create('动物名称')
使用 子类中定义的方法进行创建
''' return render(request,'Animals.html',context=context)
在 templates 中创建 render 函数中的 'xxx.html' 文件
此处 我的是 Animals.html <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>动物</title>
</head>
<body>
<h2>动物列表</h2>
<ul>
{% for animal in animals %}
<li>{{ animal.a_name }}</li>
{% endfor %}
</ul>
</body>
</html>


is_delete 为 1 的过滤掉了, 为 0 的保存了下来
2020-05-13
Django学习路19_is_delete属性,重写类方法,显性隐性属性的更多相关文章
- Django学习路21_views函数中定义字典及html中使用类实例对象的属性及方法
创建 app6 在项目的 settings 中进行注册 INSTALLED_APPS 里面添加 'app6.apps.App6Config' 在 app6 的models.py 中创建数据表 clas ...
- Django学习路37_request属性
打印元信息,基本上都会打印出来 类字典结构的 key 键 允许重复 get 请求可以传参,但是长度有限制 最大不能超过 2K post 文件上传使用 get 参数 默认放在网址中 post 在 ...
- Django学习路11_向数据库中添加 和 获取指定条件数据
在 views.py 中添加函数 向数据库中添加数据 def add_persons(request): for i in range(15): person = Person() flag = ra ...
- Django学习路34_models 文件创建数据表
from django.db import models # Create your models here. class BookInfoManager(models.Manager): '''图书 ...
- Django学习路32_创建管理员及内容补充+前面内容复习
创建管理员 python manage.py createsuperuser 数据库属性命名限制 1.不能是python的保留关键字 2.不允许使用连续的下划线,这是由django的查询方式决定的 ...
- Django学习路18_F对象和Q对象
F 对象: 可以使用模型的 A 属性和 B 属性进行比较 写法: 需要的数据对象 = 数据表(类名).objects.filter(列名__条件=F('列名2')) 需求: 查看男生数量比女生少 的公 ...
- Django学习路4_数据库添加元素,读取及显示到网页上
在 views 中实现对数据库的添加和读取数据库 添加数据 对象 = models 中创建的类名() 对象.列名 = '字段值' 对象.save() 进行保存 return HttpResponse( ...
- Django学习路35_视图使用方法(复制的代码) + 简单总结
from django.shortcuts import render,redirect from django.http import HttpResponse,JsonResponse from ...
- Django学习路33_url 地址及删除元素 delete() 和重定向 return redirect('路径')
保存日期 def create(request): '''新增一本图书''' # 1.创建BookInfo对象 b = BookInfo() b.btitle = '流星蝴蝶剑' b.bpub_d ...
随机推荐
- CentOS 7 内核更新后删除旧内核(转载)
CentOS 7 内核更新后删除旧内核 0.当前 # uname -sr Linux 3.10.0-123.20.1.el7.x86_64 1.搜索查询 # rpm -q kernel kernel- ...
- abp + vue 模板新建页面
新建页面 创建按对应的模块和实体 新建的模块需要进行注册
- python数据结构(三)
copy 复制对象,copy模块包含了两个行数copy和deepcopy,用于复制现有的对象. 浅副本(浅复制) copy()创建的浅副本是一个新容器,其中填充了原对象内容的引用 import cop ...
- python数据结构与算法(一)
1.序列中的N个元素赋值给变量 data = [1,2,3,"string!",["python","php"]] num_1,num_2, ...
- DirectX11 With Windows SDK--32 SSAO(屏幕空间环境光遮蔽)
前言 由于性能的限制,实时光照模型往往会忽略间接光因素(即场景中其他物体所反弹的光线).但在现实生活中,大部分光照其实是间接光.在第7章里面的光照方程里面引入了环境光项: \[C_a = \mathb ...
- HTTP前世今生
HTTP 是浏览器中最重要且使用最多的协议,是浏览器和服务器之间的通信语言.随着浏览器的发展,HTTP 为了能适应新的形式也在持续进化.已经历经0.9,1.0,1.1,2.0等几个阶段, 以及未来的3 ...
- C/C++代码覆盖率统计工具:gcov&&gcovr安装和简单使用
gcov安装 Linux ver: gcov是gcc的自带功能 属于GNU 不用特别安装 Windows ver: 在windows下安装可以使用gcov的gcc 之前试过mingw和Cygwin64 ...
- 008.Nginx静态资源
一 Nginx静态资源概述 1.1 静态资源类型 Nginx作为静态资源Web服务器部署配置, 传输非常高效, 常常用于静态资源处理,请求以及动静分离.通常非服务器动态运行生成的文件属于静态资源. 类 ...
- As 布局文件太多很乱的问题
//添加自定义文件整理文件夹的方法,没有之一在build.gradle(Module: app)里加入布局需要放入的路径代码>>>>>> sourceSets { ...
- Cyber Security - Palo Alto Firewall Security Zones
Firewall Security Zones Zones: The foundational aspect of every Firewall. Police network traffic Enf ...