关于django中render_to_response()的用法以及外键的使用

时间:2019-02-11
本文章向大家介绍关于django中render_to_response()的用法以及外键的使用,主要包括关于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