在modes中创建类,如下:
#构建team表,作为主表 class Team(models.Model): #创建名字属性 tname = models.CharField(max_length=20) #重写__str__方法,方便观看结果 def __str__(self): return self.tname #定义表名 class Meta: db_table = 'team' #构建project表,作为从表 class Project(models.Model): pname = models.CharField(max_length=30) #使用ManyToManyField创建多对多关系 #因是多对多关系,迁移文件时会多产生一张中间表 group1 = models.ManyToManyField(Group1) def __str__(self): return self.pname class Meta: db_table = 'project'
主从表相互查询
def querygroup(request): # 反向查询 # 获取项目 p1 = Project.objects.get(pk=3) #通过项目获取组信息 g1 = p1.group1.all() return HttpResponse(g1) # 正向查询 # 组信息 # g2 = Group1.objects.get(pk=1) # # 带_set的是从表 # p2 = g2.project_set.all() #return HttpResponse(g1)总结:基本语法:
反向查询:从表对象.主表类名小写.过滤器
正向查询:主表对象.从表类名小写_set.过滤器