1、Django 中如何解决 ajax 在 post 数据时出现的 csrf 403 forbidden 的问题?描述解决步骤 。
查看请求发现 cookie 有 csrftoken,所以利用 js 获取 csrftoken 。
核心语句 document.cookie() 会返回所有的 cookie
cookie 的结构如下:name1 = value1;name2 = value2
所以遍历每一项 cookie ,找到 csrftoken 的 value 。
最后在 ajax post 中传入一个 key 为csrfmiddlewaretoken 。
$.ajax({
type:"POST",
data:{"csrfmiddlewaretoken": csrftoken_value, key2:value2}
})
2、Django model 设计中 ForeignKey ,ManyToManyField 代表什么?它们在数据库中存储有什么区别?
ForeignKey 代表多对一,ManyToManyField 代表多对多 。
模型( Models )是对网站所需信息种类的定义,其包含了网站存储数据中的重要字段和数据行为 。一般来说,一个模型对于数据库中的一个表单 。字段( Fields )是模型的重要和唯一组成部分,他们由类别的属性值所指定 。
更新 ForeignKey 字段和保存普通字段没什么差别,只是在给字段分配对象时要注意对象类型一定要正确;更新 ManyToManyField 就有些不同,要在字段上使用 add() 方法来添加关系 。如果你在分配或添加对象时使用了类型错误的对象,Django 就会报错 。