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. 人人都是产品经理?关于PM你不知道的还有很多

    产品经理的职称最早出现在P&G宝洁公司,因效果非常显著,许多企业纷纷仿而效尤.硅谷知名的产品管理大师Marty Cagan在<Inspired: How To Create Produc ...

  2. 页面元素的定位:getBoundingClientRect()和document.documentElement.scrollTop

    1.document.documentElement.getBoundingClientRect MSDN对此的解释是: Syntax oRect = object.getBoundingClient ...

  3. vim配置C++开发环境 win10

    资料一 —— vim插件的安装 https://www.cnblogs.com/tianzhiyi/p/5338032.html 资料二 —— vim多窗口操作: https://blog.csdn. ...

  4. CSS骚操作

    获取当前HTML页面根元素的字体大小 getComputedStyle(document.getElementsByTagName("html")[0],undefined).fo ...

  5. [NOIP补坑计划]NOIP2017 题解&做题心得

    终于做完了…… 场上预计得分:?(省一分数线:295) 由于看过部分题解所以没有预计得分qwq 题解: D1T1 小凯的疑惑 题面 震惊!一道小学奥数题竟难倒无数高中考生! 欢迎大家以各种姿势*和谐* ...

  6. IOS - 退出程序

    - (void)exitApplication { OAAppDelegate *app = [UIApplication sharedApplication].delegate; UIWindow ...

  7. 循环语句第3种 FOR ... in ... LOOP END LOOP;

    --------第3种--------  FOR ... in ... LOOP  END LOOP;    BEGIN    FOR i IN 1..10 LOOP      dbms_output ...

  8. 使用BabeLua在cocos2d-x中编辑和调试Lua

    使用BabeLua在cocos2d-x中编辑和调试Lua BabeLua是一款基于VS2012/2013的Lua集成开发环境,具有Lua语法高亮,语法检查.自己主动补全.高速搜索,注入宿主程序内对Lu ...

  9. BTrace介绍和生产环境样例

    BTrace latest realese: release-1.2.5.1 BTrace guide(1.2-20101020): http://kenai.com/projects/btrace/ ...

  10. 接口測试-HAR

    參考文章 雪球的 HttpApi 接口測试框架设计 HAR(HTTP Archive)规范 神器--Chrome开发人员工具(一) HAR是什么 一句话:关于HTTP所有的信息的一种文件保存格式 HA ...