提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
django多对多查询
前言
提示:这里可以添加本文要记录的大概内容:
生活中,多对多关系:一个乐队可以有很多音乐家,一个音乐家也可以隶属好多个乐队一个文章中可以有很多标签,一个标签也可出现在很多文章中在多对多关系中专门有第三张表来存储对应关系,表本身之间没有任何关联,此时删除和修改数据不影响另外一张表from
提示:以下是本篇文章正文内容,下面案例可供参考
一、多对多关系是什么?
多对多关系在模型中使用ManyToManyField
字段定义
二、使用步骤
1.模型类
代码如下(示例):
class Biao(models.Model):
name=models.CharField(max_length=10,verbose_name='标签名')
class Meta:
db_table='biao'
def __str__(self):
return self.name
class Wen(models.Model):
name1=models.CharField(max_length=10,verbose_name='文件标题')
auu=models.ManyToManyField(Biao)
class Meta:
db_table='wen'
def __str__(self):
return self.name1
2.视图
class Ao(View):
def get(self,request,pk):
dict=models.Biao.objects.filter(wen=pk)
return render(request,'biaoqian5555.html',locals())
class Bo(View):
def get(self,request):
dict1=models.Wen.objects.all()
return render(request,'wenzhang666.html',locals())
3.配置路由
代码如下(示例):
path('ao/<int:pk>',views.Ao.as_view()),
path('bo/',views.Bo.as_view()),
---
# 在多对多的情况,有专门的第三张表,存储 对应关系, 表本身并没有字段来存储对应关系,此时删除任意数据,不影响另一张表数据
---