import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "modletest.settings")
import django django.setup() from apptest import models # 正向查找 # models.Students.objects.filter(sclass="一班") #这句是错的,ValueError: invalid literal for int() with base 10: '一班' # obj=models.Students.objects.filter(sclass__cname="一班") #筛选出一班的学生
# obj = obj.first() #得到第一个结果
# obj.sclass #得到sclass的一个对象
# obj.sclass.cname # 反向查找 # obj = models.Classes.objects.filter(students__sname="张三")
# obj=obj[0]
# obj=obj.students_set.all() # <QuerySet [<Students: 张三>, <Students: 李四>]>
# obj.first().sname #得到张三所在班级的第一个学生的名字 obj = models.Teachers.objects.all().values('teacher_to_class__cls__cname') # 可以通过第三张表进行查询
obj = models.Teachers.objects.filter(tname="张三")
obj = obj[0]
print(obj.teacher_to_class_set.all()) # <QuerySet [<Teacher_to_Class: 1>, <Teacher_to_Class: 5>]>
obj.teacher_to_class_set.all()[0].cls_id.cname # In [9]: obj.teacher_to_class_set.all()[0].cls
# Out[9]: <Classes: 一班>
#
# In [10]: obj.teacher_to_class_set.all()[0].cls.cname
# Out[10]: '一班'
#
# In [11]: obj.teacher_to_class_set.all()[0].teacher
# Out[11]: <Teachers: 张三>
from django.db import models

# Create your models here.

class Students(models.Model):
sname = models.CharField(max_length=50)
sclass = models.ForeignKey('Classes') def __str__(self):
return self.sname class Classes(models.Model):
cname = models.CharField(max_length=50) def __str__(self):
return self.cname class Teachers(models.Model):
tname = models.CharField(max_length=50) def __str__(self):
return self.tname class Teacher_to_Class(models.Model):
teacher = models.ForeignKey("Teachers")
cls = models.ForeignKey("Classes") class Meta:
unique_together = (('teacher', 'cls')) def __str__(self):
return str(self.id)
 obj=models.Teachers.objects.all()[0]
print(obj.cls.all()) obj = models .Classes .objects.all()[0]
print(obj.teachers_set ) #apptest.Teachers.None
print(obj.teachers_set.filter(tname="张三")) class Teachers(models.Model):
tname = models.CharField(max_length=50)
cls = models.ManyToManyField("Classes") def __str__(self):
return self.tname
import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "modletest.settings")
import django django.setup() from apptest import models # 正向查找 # models.Students.objects.filter(sclass="一班") #这句是错的,ValueError: invalid literal for int() with base 10: '一班' # obj=models.Students.objects.filter(sclass__cname="一班") #筛选出一班的学生
# obj = obj.first() #得到第一个结果
# obj.sclass #得到sclass的一个对象
# obj.sclass.cname # 反向查找 # obj = models.Classes.objects.filter(students__sname="张三")
# obj=obj[0]
# obj=obj.students_set.all() # <QuerySet [<Students: 张三>, <Students: 李四>]>
# obj.first().sname #得到张三所在班级的第一个学生的名字 obj = models.Teachers.objects.all().values('teacher_to_class__cls__cname') # 可以通过第三张表进行查询
obj = models.Teachers.objects.filter(tname="张三")
obj = obj[]
print(obj.teacher_to_class_set.all()) # <QuerySet [<Teacher_to_Class: 1>, <Teacher_to_Class: 5>]>
obj.teacher_to_class_set.all()[].cls_id.cname # In [9]: obj.teacher_to_class_set.all()[0].cls
# Out[9]: <Classes: 一班>
#
# In [10]: obj.teacher_to_class_set.all()[0].cls.cname
# Out[10]: '一班'
#
# In [11]: obj.teacher_to_class_set.all()[0].teacher
# Out[11]: <Teachers: 张三>

Django------->>>modle的更多相关文章

  1. Django modle基础样版

    定义一个基类模版, from django.db import models class ModelBase(models.Model): """ "" ...

  2. python 学习笔记十六 django深入学习一 路由系统,模板,admin,数据库操作

    django 请求流程图 django 路由系统 在django中我们可以通过定义urls,让不同的url路由到不同的处理函数 from . import views urlpatterns = [ ...

  3. Django 基础(一)

    Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能 ...

  4. Python之路,Day14 - It's time for Django

    Python之路,Day14 - It's time for Django   本节内容 Django流程介绍 Django url Django view Django models Django ...

  5. Django模型-数据库操作

    前言 前边记录的URLconf和Django模板全都是介绍页面展示的东西,也就是表现层的内容.由于Python先天具备简单而强大的数据库查询执行方法,Django 非常适合开发数据库驱动网站. 这篇开 ...

  6. django模型——数据库(二)

    模型--数据库(二) 实验简介 模型的一些基本操作,save方法用于把对象写入到数据库,objects是模型的管理器,可以使用它的delete.filter.all.order_by和update等函 ...

  7. django学习笔记(三)模型

    1.创建一个django app: python manage.py startapp books 2.validate 命令检查你的模型的语法和逻辑是否正确.一旦你觉得你的模型可能有问题,运行 py ...

  8. Python框架之Django学习笔记(十)

    又是一周周末,如约学习Django框架.在上一次,介绍了MVC开发模式以及Django自己的MVT开发模式,此次,就从数据处理层Model谈起. 数据库配置 首先,我们需要做些初始配置:我们需要告诉D ...

  9. Django, one-to-many, many-to-many

    1.定义关系 定义三个表,Publisher,Book,Author 一个作者有姓,有名及email地址. 出版商有名称,地址,所在城市.省,国家,网站. 书籍有书名和出版日期. 它有一个或多个作者( ...

  10. Django框架3——模型

    Django数据库层解决的问题 在本例的视图中,使用了pymysql 类库来连接 MySQL 数据库,取回一些记录,将它们提供给模板以显示一个网页: from django.shortcuts imp ...

随机推荐

  1. hdu 1166 敌兵布阵 【线段树】

    好好学一下线段树---- 从0开始----加油- 单点更新的 #include<cstdio> #include<cstring> #include<iostream&g ...

  2. Unity 默认进入的scenes

    1,如果有多个场景,那么第一个场景要放在最上边,(其他的也要加) 2,如果不添加,那么Unity会把当前打开的场景添加进来. 3,切换场景的代码 using UnityEngine.SceneMana ...

  3. ZBrush中如何使用套索工具绘制遮罩

    ZBrush®中创建遮罩的方法有很多,可以手动创建矩形遮罩.圆形遮罩和图案遮罩,然而这些遮罩都是固定的形状.使用Zbrush中的套索遮罩能够实现不规则的图形遮罩,游刃有余的发挥创作. 使用套索工具绘制 ...

  4. [THUWC2017]在美妙的数学王国中畅游 LCT+泰勒展开+求导

    p.s. 复合函数求导时千万不能先带值,再求导. 一定要先将符合函数按照求导的规则展开,再带值. 设 $f(x)=g(h(x))$,则对 $f(x)$ 求导: $f'(x)=h'(x)g'(h(x)) ...

  5. 路飞学城Python-Day34

    01-MySQL-开篇 数据库:数据库就是数据存储的仓库,数据想要永久存储只能放在文件中,如果忽略文件的存储的效率问题,文件的组件全部都存放在一台机器上,那么文件数据就可以存储在一台机器上,但是这样做 ...

  6. TensorFlow+实战Google深度学习框架学习笔记(6)----神经网络经典损失函数

    1.分类问题(交叉熵): (1)模型: (2)代码1: 其中,tf.clip_by_value是将一个张量的数值限制在一个范围之内,若小于1e-10则赋值为1e-10,若大于1.0则赋值为1,这样避免 ...

  7. kafka内外网集群配置

    linux下配置使用以第一台为例(先配置好jdk环境)1.解压kafka:2.10-0.10.1.12.修改zookeeper.properties 新增配置:maxClientCnxns=0 tic ...

  8. [置顶] 谷歌大牛 Jeff Dean 是如何成为互联网战神的

    谷歌大牛 Jeff Dean 是如何成为互联网战神的 原文链接: Will Oremus   翻译: 伯乐在线- Lex Lian 译文链接: http://blog.jobbole.com/4772 ...

  9. 发个ZKW线段树板子测试一下代码高亮

    是我,Long time no see          --Jim 先安利 Wolves  歌手:Madilyn Bailey http://music.163.com/song/524149464 ...

  10. PHP动态函数处理

    public class Student{ public function speek($name){ echo 'my name is '.$name; } } $method='speek'; $ ...