在Python中如何操作数据库中表与表之间的关系

===========================实例一(onetoone)=======================
1.models.py

  from django.db import models


# 表之间数据的一对一关系:一个账户对应一个联系人,反过来一个联系对应一个账户
# 主表  从表
# 账户表
class Account(models.Model):
    
    aname = models.CharField(max_length=20)
    apwd = models.CharField(max_length=16)
    adate = models.DateTimeField(auto_now_add=True)
    
    class Meta:
        db_table = 'account'
        
    def __str__(self):
        return '{}'.format(self.aname)


class Concat(models.Model):
    # 一个联系人要对应一个账户
    # OneToOneField() 一对一
    # 1.对应的数据模型类  on_delete 当主表中的数据被删除时,从表中的数据如何处理
    # on_delete=models.CASCADE 当主表中的数据删除时,从表数据也一并删除
    account = models.OneToOneField(Account, on_delete=models.CASCADE)
    # 当前表中的字段
    address = models.CharField(max_length=255)
    phone = models.CharField(max_length=11)
    
    class Meta:
        db_table = 'concat'
    
    def __str__(self):
        # self.account.aname 就是Account模型类对象的aname属性值
        return 'Concat:{}'.format(self.account.aname)
    
    

2.views.py

from django.shortcuts import render,HttpResponse


from .models import Account,Concat
# Create your views here.


def add(request):
    
    # 先创建主表中的数据
    account = Account(aname='王老师', apwd='5235323', adate='2018-4-5')
    account.save()
    
    # account = Account.objects.get(id=4)
    # 将account和一个concat进行一对一的绑定
    # account参数必须是Account中的一条数据
    concat = Concat(account=account, address='zzz', phone='110')
    concat.save()
    
    return HttpResponse('成功')
 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值