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. POJ 1995 Raising Modulo Numbers 【快速幂取模】

    题目链接:http://poj.org/problem?id=1995 解题思路:用整数快速幂算法算出每一个 Ai^Bi,然后依次相加取模即可. #include<stdio.h> lon ...

  2. 页面定制CSS代码初探(五):给每篇文章最后加上'<完>'

    前言 我刚写博客的时候,有几篇是手动在最后加了个<完> 今天在看别人CSS布局时,发现很多::before和::after标签,因为没学过CSS,从名字看大概是前边/后边 加上某个东西的意 ...

  3. oralce存储过程实现不同用户之间的表数据复制

    create or replace procedure prc_test123 is temp_columns ); sqltemp ); cursor cur is select table_nam ...

  4. CF 689D - Friends and Subsequences

    689D - Friends and Subsequences 题意: 大致跟之前题目一样,用ST表维护a[]区间max,b[]区间min,找出多少对(l,r)使得maxa(l,r) == minb( ...

  5. 2017CCPC秦皇岛

    热身赛 B题 Smartphone: 大整数相乘 Time Limit: 1 Second Memory Limit: 65536 KBHelianthuswolf Co. Ltd. is a mul ...

  6. 升级ruby到2.0

    本文部分内容转载,如侵犯个人利益请联系博客管理员及时删除,或留言之评论区 一.安装库 Yum install –y gcc* openssl* wget 二.安装ruby wget https://c ...

  7. Vue的数据依赖实现原理简析

    首先让我们从最简单的一个实例Vue入手: const app = new Vue({ // options 传入一个选项obj.这个obj即对于这个vue实例的初始化 }) 通过查阅文档,我们可以知道 ...

  8. SM32 USART与USB接收不定数据方法,标准库、HAL库都适用

    很多时候,我们使用串口或USB接收数据时,往往不知道PC端会发多长的数据下来, 为了解决这个不定数据接收问题,在此各提供一个解决思路. 串口数据不定接收: 由于STM32单片机带IDLE中断,所以利用 ...

  9. vue自定义一个过滤器

    vue如何自定义一个过滤器 html代码: <div id="app"> <input type="text" v-model="m ...

  10. java.lang.RuntimeException: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符

    这种情况可能是因为在设置数据库的时候,没有配置数据库的方言,导致sql语句无法被识别. 例如在配置Jfinal的配置文件的时候 如果不配置数据库的方言,默认下它是MySQL的,当使用oracle数据库 ...