一 .ORM一对一表(OneToOneField)
1.创建ORM表
一对一关系与多对一关系非常相似。如果你在模型中定义一个OneToOneField,该模型的实例将可以通过该模型的一个简单属性访问关联的模型。
class Person(models.Model):
name = models.CharField(max_length=20)
class PersonDetail(models.Model):
age = models.IntegerField(10)
email = models.EmailField()
person = models.OneToOneField(Person) # person = models.ForeignKey(Person, unique=True)
2. 查询
def one(request):
# 查询alex的用户信息
# 正向查询
ret = models.PersonDetail.objects.get(id=1) # ret = models.PersonDetail.objects.get(id=models.Person.objects.get(name='alex').id)
# 这里的person是表中的关联外键的字段并非类名字
print(ret.person) # Person object 封装的Person对象
print(ret.person.name, ret.age, ret.email)
# 查询alex的用户信息
# 反向查询
obj = models.Person.objects.get(name='alex')