学习笔记24 重点

时间:2023-02-26 12:59:52

使用 ajax时候 不要用 render 因为render会返回整个页面的字符串 

request.session.clear() 删除·session  

应用场景:

注销、

model.user.objects.create(fk=obj)  

 

boy = models.UserInfo.objects.filter(id=1,gender=1).first()
girl = models.UserInfo.objects.filter(id=4,gender=2).first()

models.U2U.objects.create(b=boy,g=girl)
传递对象的话 会自动将对象的id 解析给关系表的id

连表分为三大类型:

1.男女表 各自新建一个类 分散的连表

 可以给外键加别名,也可以不加  通过 relation_name
  正向操作:

     通过对象: 对象.外键.字段

    通过values: 外键__字段

  反向:

    通过对象:

      非外键对象.外键对象小写名字__set.all()

    通过values:

      对象__字段      

2. 男女表 在同一个类

     通过对象: 对象.外键别名.all()

3 通过manytomany 自身创建一个关联表

注意点:

1 首先在关联表 要人为规定列 属于哪个对象 例如  from_userinfo_id 属于男生 反之

学习笔记24 重点

 

 

 2

学习笔记24 重点

 

 

例如  男生查询与自己有关联的对象 则 直接通过 【关联表名】查询即可 注意【关联表名】是第二张表的名字

  result = model.userinfo.object.filter(id=1).first() 先查询出该男生

  obj = result.m.all()  通过表名查询与自己有关联的对象

  for i in obj:

    print i.nickname 这里不需要跨表 因为这个表就是建立在userinfo上面 直接查询即可

例如 女生查询与自己关联的对象 则需要通过 【表名】查询即可 注意 【表名】 指的是创建信息的表名即自身的表名

  result = model.userinfo.object.filter(id=2).first() 先查询出该女生

  obj = result.userinfo_set.all()  通过小写的表名查询与自己有关联的对象 这里的_set 是句柄

  for i in obj:

    print i.nickname

 

 

反向查询之流程:

 

 

 学习笔记24 重点