关于django中render_to_response()的用法以及外键的使用
render_to_response()
render_to_response() 的第一个参数必须是要使用的模板名称。 如果要给定第二个参数,那么该参数必须是为该模板创建 Context 时所使用的字典。 如果不提供第二个参数, render_to_response() 使用一个空字典。
render_to_response() 是为了更高效的载入某个模板文件,渲染它,然后将此作为 HttpResponse 返回。
外键
class ForeignKey(to,on_delete,**options)。第一个参数是引用的是哪个模型,第二个参数是在使用外键引用的模型数据被删除了,这个字段该如何处理,比如有CASCADE、SET_NULL等(外键删除各个参数的意思)。
如果想在APP中使用外键,首先创建一个APP之后在setting中设置
from django.db import models
class Category(models.Model):
name = models.CharField(max_length=100)
class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
# 是由Category影响Article
category = models.ForeignKey(‘Category’,on_delete=models.CASCADE)
这一行就是使用外键,第一个参数是引用的模型,也就是Category,第二个参数就是当删除了这个参数之后这个字段如何处理
在使用了外键之后,Django在底层为Article表添加了一个属性名为_ID的字段,记录着对应的种类的主键,以后用过article.category访问的时候,实际上是先通过category_ID找到对应的数据,然后再提取Category表中的这条数据,形成一个模型
外键删除操作的参数意思
如果一个模型使用了外键。那么在对方那个模型被删掉后,该进行什么样的操作。可以通过on_delete来指定。可以指定的类型如下:
CASCADE:级联操作。如果外键对应的那条数据被删除了,那么这条数据也会被删除。
PROTECT:受保护。即只要这条数据引用了外键的那条数据,那么就不能删除外键的那条数据。如果我们强行删除,Django就会报错。
SET_NULL:设置为空。如果外键的那条数据被删除了,那么在本条数据上就将这个字段设置为空。如果设置这个选项,前提是要指定这个字段可以为空。
SET_DEFAULT:设置默认值。如果外键的那条数据被删除了,那么本条数据上就将这个字段设置为默认值。如果设置这个选项, 前提是要指定这个字段一个默认值 。
SET():如果外键的那条数据被删除了。那么将会获取SET函数中的值来作为这个外键的值。SET函数可以接收一个可以调用的对象(比如函数或者方法),如果是可以调用的对象,那么会将这个对象调用后的结果作为值返回回去。可以不用指定默认值
DO_NOTHING:不采取任何行为。一切全看数据库级别的约束。
以上这些选项只是Django级别的,数据级别依旧是RESTRICT!
原文:https://blog.csdn.net/xujin0/article/details/83552349
关于django中render_to_response()的用法以及外键的使用相关推荐
- 任务队列:celery快速入门及django中celery的用法
文章目录 一.celey的简介 1.1 celery的工作机制 1.2 安装celery(5.2版本) 二.celery快速入门 2.1 选择broker 2.2 celery的简单使用 2.2.1 ...
- sql server 快照_在SQL Server合并复制中应用快照时出现外键问题
sql server 快照 This article will review specific SQL Server merge replication issues related to forei ...
- PowerDesigner中的CDM设计的外键作主键的问题
PowerDesigner中的CDM设计的外键作主键的问题 From:tonyepaper.cnblogs.com 2009-09-15 00:58 两个实体之间是一对一的关系.两个实体的标识符是&q ...
- 如何列出引用SQL Server中给定表的所有外键?
我需要在SQL Server数据库中删除一个高度引用的表. 我如何获取要删除表需要删除的所有外键约束的列表? (与在Management Studio的GUI中单击相比,SQL的答案更好.) #1楼 ...
- Django从理论到实战(part32)--外键删除
学习笔记,仅供参考,有错必纠 参考自:Django打造大型企业官网–Huang Y: 外键删除 在学习外键删除之前,我们先学习一下外键. 外键 比如,我们有一个User和一个Article两个模型,U ...
- .Net中删除数据前进行外键冲突检测
在编写数据库系统中为了保证系统中数据的一致性最简便且安全的方法就是在DBMS中建立外键约束,但删除主键数据时如果违反了外键约束,尽管DBMS会给出错误提示,如SQL Server的提示信息" ...
- django的admin界面删除因为外键约束导致失败
因为admin界面最终是给非技术人员使用的, 所以此时显然不能再采用关闭外键检查的方式来规避报错了. 这里需要修改的是models.py 中的on_delete选择CASCADE. CASCADE含义 ...
- 【原创】数据库中为什么不推荐使用外键约束
引言 其实这个话题是老生常谈,很多人在工作中确实也不会使用外键.包括在阿里的JAVA规范中也有下面这一条 [强制]不得使用外键与级联,一切外键概念必须在应用层解决. 但是呢,询问他们原因,大多是这么回 ...
- SQL Server中的递归CTE和外键引用
介绍 (Introduction) Foreign key constraints are a powerful mechanism for preserving referential integr ...
- oracle中删除级联方法,Oracle 外键级联删除
Oracle 外键级联删除 日期:2010年5月22日 作者: 近来软件系统中要删除一条记载,就要关联到同时删除好多张表,它们之间还存在着约束联络.所以思索到在树立表时加上约束联络,细致内容如下: S ...
最新文章
- usb调试模式已打开,adb devices显示List of devices attached 解决办法!纽维K333一键ROOT,获取ROOT权限!...
- python期末知识点总结_期末考试必备复习提纲丨9年级数学上册知识点总结归纳(人教版)...
- java 并发实例_java一些常用并发工具示例
- 《Head First 设计模式》之命令模式——遥控器
- spring-cloud eureka注册发现
- python获取url文件名_python httplib / urllib获取文件名
- @value 静态变量_你理解 PHP 中的静态方法吗?
- java内存模型 原子性_Java内存模型JMM 高并发原子性可见性有序性简介 多线程中篇(十)...
- 关于c# .net爬虫
- Microsoft Visual Studio 文件识别及其用途简述
- 解决content is not allowed in prolog问题
- PAT1018. 锤子剪刀布
- android设计个人简历页面_Android程序员简历模板
- 计算机主机放电操作,如何给主板CMOS放电的3种方法图文教程
- 【原创】基于.NET的轻量级高性能 ORM - TZM.XFramework
- android英语阅读识别库,基于Android的大学英语阅读学习平台研究
- Ubuntu中配置WRF
- Succinimidyl Carboxymethyl Ester-PEG-Mal,Mal-poly(ethylene glycol)-SCM
- b站网页版没有html,b站网页版
- MATLAB resample函数