如果在 创建数据表时,使用了
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

最新文章

  1. Magical平台类库代码分享
  2. ROW_NUMBER() OVER函数的基本用法
  3. Redis介绍以及安装(Linux)
  4. java学习第6天
  5. 实例详细说明linux下去除重复行命令uniq
  6. 查询SQL SERVER数据库日志工具
  7. sql之透视
  8. ps -aux
  9. 128階數的Shunt音量控制器
  10. git 服务器搭建与运用
  11. Django的项目创建,以及该端口号,语言随地区而变化
  12. 搜索引擎(Elasticsearch搜索详解)
  13. Debian 无线网卡驱动问题
  14. jd面试之感
  15. Java Date实现加一天,年月日类推往后+1,日期+1,月份+1,年份+1
  16. Django中的ORM相关操作:F查询,Q查询,事物,ORM执行原生SQL
  17. NaviCat SqlServer Windows 10 Update 1803 IM004 - Driver&#39;s SQLAllocHandle on SQL_HANDLE_ENV failed
  18. U盘安装电脑系统教程
  19. day4 边缘检测Canny
  20. Objective-c的@property 详解

热门文章

  1. Java编程资料
  2. composer更新命令及常用命令
  3. 每日一题 - 剑指 Offer 50. 第一个只出现一次的字符
  4. REST,RPC和GraphQL应用场景,WebHooks、WebSocket、HTTP Streaming应用场景。
  5. 使用Splunk监控SAP Dump
  6. day39 作业
  7. day29 作业
  8. 浅析Python垃圾回收机制!
  9. JS基础知识点(一)
  10. cmder安装(window下好用的终端)