django上课笔记5-FK关联
一、FK关联
FK关联
url.py里
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^index.html$', views.index),
] views.py里
from django.shortcuts import render,HttpResponse
from app01 import models
def index(request):
zgl = models.UserInfo.objects.filter(username='zgl',gender=1).first() # 拿到要查询的对象 result = zgl.girls.all() # 去U2U里拿到所有的b_id
for u in result:
print(u.g.nickname) # 拿到b_id所对应的.g的女孩的nickname return HttpResponse('successfully done') models.py里
from django.db import models class UserInfo(models.Model):
nickname = models.CharField(max_length=16)
username = models.CharField(max_length=16)
passwd = models.CharField(max_length=64)
gender_choice = (
(1,'男'),
(2,'女'),
)
gender= models.IntegerField(choices=gender_choice) # 反向查询时
# related_query_name
# obj对象男.U2U.girls_set.all()
# obj对象女.U2U.boys_set.all()
# related_name
# obj对象男.girls.all()
# obj对象女.boys.all() class U2U(models.Model):
g = models.ForeignKey('UserInfo',related_name='boys')
b = models.ForeignKey('UserInfo',related_name='girls') M2M自关联特性:
models.py里
from django.db import models class UserInfo(models.Model):
nickname = models.CharField(max_length=16)
username = models.CharField(max_length=16)
passwd = models.CharField(max_length=64)
gender_choice = (
(1,'男'),
(2,'女'),
)
gender= models.IntegerField(choices=gender_choice)
m = models.ManyToManyField('UserInfo') # 自己关联自己 views.py里
def index(request):
#查女生
girl = models.UserInfo.objects.filter(id=4,gender=2).first() # 拿到要查询的对象
result = girl.userinfo_set.all()
for row in result:
print(row.nickname) return HttpResponse('successfully done') obj = models.UserInfo.objects.filter(id=1).first()
# 对于from_userinfo_id 相当于正向查询通过.m的方式
obj.m => select xx from xx where from_userinfo_id = 1 # 对于to_userinfo_id 相当于反向查询通过.userinfo_set的方式
obj.userinfo_set => select xx from xx where to_userinfo_id = 1 定义:
# 前面列:男生ID
# 后面列:女生ID 应用:
# 男生对象
obj = models.UserInfo.objects.filter(id=1).first()
# 根据男生ID=1查找关联的所有的女神
obj.m.all() # 女生
obj = models.UserInfo.objects.filter(id=4).first()
# 根据女生ID=4查找关联的所有的男生
obj.userinfo_set.all()
问题:
当打不开页面,发生404错误时
url(r'^index.html$/', love.index) # index.html$后边不要加反斜杠
django上课笔记5-FK关联的更多相关文章
- django上课笔记7-jQuery Ajax 和 原生Ajax-伪造的Ajax-三种Ajax上传文件方法-JSONP和CORS跨域资源共享
一.jQuery Ajax 和 原生Ajax from django.conf.urls import url from django.contrib import admin from app01 ...
- django上课笔记4-复习数据库操作-复习模板-Seccion-详细cookie和session的区别
一.复习数据库操作 字段类型 字符串 EmailField(CharField): IPAddressField(Field) URLField(CharField) SlugField(CharFi ...
- django上课笔记1-目录介绍-路由系统-ORM操作
一.Django目录介绍 django-admin startproject mysite # 创建名为mysite的项目 cd mysite # 切换到该目录下 python manage.py s ...
- django上课笔记6-MVC,MTV架构-中间件-初识Form组件
一.MVC,MTV架构 models(数据库,模型) views(html模板) controllers(业务逻辑处理) --> MVC models(数据库,模型) templates(htm ...
- django上课笔记3-ORM补充-CSRF (跨站请求伪造)
一.ORM补充 ORM操作三大难点: 正向操作反向操作连表 其它基本操作(包含F Q extra) 性能相关的操作 class UserInfo(models.Model): uid = models ...
- django上课笔记2-视图CBV-ORM补充-Django的自带分页-Django的自定义分页
一.视图CBV 1.urls url(r'^login.html$', views.Login.as_view()), 2.views from django.views import View cl ...
- Django 学习笔记(二)
Django 第一个 Hello World 项目 经过上一篇的安装,我们已经拥有了Django 框架 1.选择项目默认存放的地址 默认地址是C:\Users\Lee,也就是进入cmd控制台的地址,创 ...
- Django学习笔记(2)——模型,后台管理和视图的学习
一:Web投票示例 本节我们首先从全局范围再复习一下Django的概念,让自己对Django的设计理念, 功能模块,体系架构,基本用法有初步的印象. Django初始的详细博客内容:请点击我 该应用包 ...
- Django学习笔记二
Django学习笔记二 模型类,字段,选项,查询,关联,聚合函数,管理器, 一 字段属性和选项 1.1 模型类属性命名限制 1)不能是python的保留关键字. 2)不允许使用连续的下划线,这是由dj ...
随机推荐
- Credit Memo和Debit Memo在AR以及AP中的概念比较
AR和AP中都有Credit Memo和Debit Memo的概念, 但是其含义和用法完全不一样,比较难懂,现在整理如下:AR中的CreditMemo和DebitMemo是和客户打交道:AR中的Cre ...
- 【Android开发—智能家居系列】(一):智能家居原理
来到JCZB公司的第二天,就接到了开发类似于小米智能家庭APP的任务.组长让我在手机上安装上此款APP,给了我个小米智能插座,就让我开始了解需求.这便开启了我的智能家居旅程.说实话,我也真是out的无 ...
- RNN与LSTM
Recurrent Neural Networks Recurrent neural networks are networks with loops in them, allowing inform ...
- 【J2EE】十三个规范:愿天下苍生,人人如猿。
学习了J2ee后对java这个立足标准化的行为感到深深的佩服. 收买什么都不如收买人心,培养啥子都不如培养 习惯.没错,java就是在培养行业习惯,以一纸规范屹立不倒.毕竟技术什么的层出不穷,再新再前 ...
- iOS开发之UITabBarController和UICollectionView的使用
这一篇要记录的是iOS开发中UITabBarController控件和UICollectionView控件的使用.APP跑起来之后的效果例如以下图: watermark/2/text/aHR0cDov ...
- Effective C++ 条款17 以独立语句将newed对象置入智能指针
对于函数: int priority(); void processWidget(std::tr1:: shared_ptr<Widget> pw,int priority); 调用 ...
- INAPP登陆调用的FB接口
public function login_get (){ $this->load->helper ( 'auth' ); $redirectUrl = $this->input-& ...
- Access 执行查询时,抛出“标准表达式中数据类型不匹配”的错误
Access根据时间查询时应在查询条件前后加# SELECT COUNT(*) FROM [User] WHERE [CreateTime] > #{0}#
- 基于SpringMVC框架使用ECharts3.0实现堆叠条形图的绘制(下篇)
<script type="text/javascript"> $().ready(function() { var myChart = echarts.init(do ...
- Qt & opencv 学习(一)
Qt也没怎么系统学过,opencv也没系统学过.慢慢来,一步一步弄清楚吧. 天嵌科技有个文档,先去看这个文档,主要是开发环境的配置.文档名字就是QT应用程序开发手册-20150918.pdf.在QT里 ...