django一对一,一对多,多对多

一对一:A表从B表中选出一条数据一一对应,母表中选出来一条就少一条,子表不可以再选择母表中已被选择的那条数据
一对多:A表从B表中选出一条数据一一对应,但母表的这条数据还可以被其他子表数据选择
多对多:对于A表与B表双向均是可以有多个选择
外键:将A表与B表关联起来。

from django.shortcuts import render
from django.http import HttpResponse
from .models import UserInfo,AddressInfo
from django.db.models import Q,F

def Register(request):
a = UserInfo.objects.all()
username = a[0].username

# 1.找到id=1 的用户的名字
user_obj = UserInfo.objects.get(id=1)
print(user_obj.username)
# 2\找出所有的姓张的用户
user_list = UserInfo.objects.filter(username__startswith='张')
print(user_list)
for i in user_list:
    print(i.username)

# 3\找出所有包含张的用户
use_list1 = UserInfo.objects.filter(Q(username__contains='zhang') | Q(username__contains='张'))
print(use_list1)

# 4\找出所有姓张的id>2的用户
use_list2 = UserInfo.objects.filter(Q(username__startswith='张') & Q(id__gt=2))
print(use_list2)

# 5\找出电话号码大于密码用户
use_list3 = UserInfo.objects.filter(phone__gt=F('password'))
print(use_list3)

# 6\找出xiaozhang的y所有地址,一对多
user_obj1 = UserInfo.objects.get(username='张三')

zhang_list = user_obj1.addressinfo_set.all()
print(zhang_list)
return render(request,'a.html',{'name':'username'})
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值