数据库中的表示这样设计的
class C(models.Model): name = models.CharField(max_length=32) class B(models.Model): name = models.CharField(max_length=32) b = models.ForeignKey(C) class A(models.Model): name = models.CharField(max_length=32) a = models.ForeignKey(B) def __unicode__(self): return self.name
测试数据是这样增加的:
def add(request): tmpc = C.objects.create(name='zs') tmpb = B.objects.create(name = 'ls', b = tmpc) A.objects.create(name = 'ww', a = tmpb) return HttpResponse("OK")
数据是这样展示的:
def test(request): a = A.objects.get(name = 'ww') str1 = a.name str2 = a.a.name str3 = a.a.b.name print "str1=%s,str2=%s,str3=%s"%(str1,str2,str3) return HttpResponse("ok")
结果是这样显示的:
str1=ww,str2=ls,str3=zs
感觉Python + Django在处理ORM(关系实体映射)时候还是挺强悍的。
仅仅查一个类,就可以通过这个类的外键访问到另一个类的信息,甚至是这个关联类的关联的类的信息!