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 ...
随机推荐
- win7安装ANT
点击进入ant官网,找到下载选项. 选择下载安装文件.其余的源文件和手册的下载步骤完全相同. 可以下载官网上对应系统的最新版本.也可以在old ant 版本中选择自己需要的版本.笔者需要ant ...
- 系统重装 WIN7如何创建和使用VHD文件
1 在磁盘管理中,点击操作-创建VHD,然后可以创建一个空的VHD文件 2 右击这个磁盘,点击初始化磁盘,然后可以新建简单卷 3 右击这个磁盘,设置为脱机或者联机就可以在计算机中显示和隐藏这个 ...
- Git多账号登陆
最近工作上遇到了使用git+repo的情况,需要用公司的邮箱和账号名重新申请ssh公私密钥,而我本身在github上也有一些开源项目,这里就是记录一下我是如何实现git多账号登陆的. 取消 ...
- linux系列之-—03 压缩和解压缩命令
tar命令 解包:tar zxvf FileName.tar 打包:tar czvf FileName.tar DirName gz命令 解压1:gunzip FileName.gz 解压2:gzip ...
- 使用MegaCli查看raid信息
LSI SAS based MegaRAID driver http://www.lsi.com/downloads/Public/Nytro/downloads/Nytro%20XD/MegaCli ...
- J2SE核心开发实战(二)——字符串与包装类
字符串与包装类 一.实验简单介绍 在本章.我们将学习一些用于处理字符串的API以及包装类的相关知识. 本章知识点 字符串API 包装类及其应用 二.认识字符串类 1. 什么是字符串类 Java字符串类 ...
- 怎样搭建svn本地server,管理本地的代码
搭建svn本地server,以下是详细的步骤介绍. 一.准备工作 1.下载svnserver端:Subversion. 到官方站点(http://s version.tigris.org/)下载最新的 ...
- WEBGIS控制图层的显示
看别人搞的GIS应用,常常有勾选.取消某个图层的操作,然后地图上就有相应的图形显隐,觉得好酷. 咋实现的? 其实说起来好像也不是特别复杂.在WEB端,实现该功能的原理和步骤是: 1.WEB端加载地图服 ...
- 把node加入master节点时,日志内容分析
root@node1:~# kubeadm --token bggbum.mj3ogzhnm1wz07mj --discovery-token-ca-cert-hash sha256:8f02f833 ...
- All the best open source and Software as a Service (SaaS) tools in one place 工具 工欲善其事必先利其器
Open Source & SaaS Tools | StackShare https://stackshare.io/categories AfterShip/SaaS: List of S ...