===========================实例一(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('成功')