django 表的多對多關係建立和主從表相互查詢
阿新 • • 發佈:2018-12-17
在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.過濾器