一对多模型关系:
class Dept(models.Model):
name = models.CharField(max_length=32)
location = models.CharField(max_length=64)
class Meta:
db_table = 'dept'
class Emp(models.Model):
name = models.CharField(max_length=32)
age = models.IntegerField(default=18)
e_dept = models.ForeignKey(Dept)
class Meta:
db_table = 'emp'
在这里,创建一个员工表和一个部门表,一个员工属于一个部门,一个部门包括多个员工,在多方创建外键
**1:**多方获取一方,比如根据员工找对应的部门
显性属性:可以直接观察到的属性,通过多方获取一方,那么可以使用多方调用显性属性直接获取一方数据
def getDept(request):
emp = Emp.objects.get(pk=1)
name = emp.e_dept.name
print(name)
return HttpResponse('查询成功')
2一方获取多方,比如根据部门获取该部门所有的员工
隐性属性:在类中观察不到的但是可以使用的属性,通过一方获取多方,那么可以使用一方数据的隐性属性,获取多方数据
def getEmps(request):
dept = Dept.objects.get(pk=1)
emps = dept.emp_set.all()
for emp in emps:
print(emp.name)
return HttpResponse('查询成功')