1.多对多增删改查 ---增
a.多对多model.py模型书写方案# Create your models here.
# 一个电影可以不同得用户收藏
class moive(models.Model):
name = models.CharField(max_length=50)
duration = models.IntegerField(default=90)
class Meta:
db_table = 'tb_moive'
# 用户
class user(models.Model):
name = models.CharField(max_length=30)
age = models.IntegerField(default=18)
# 多对多关系
moives = models.ManyToManyField(moive)
class Meta:
db_table = 'tb_Moive_user'
b、在view.py多对多得数据添加 以及多对多得关系 关联数据添加方案
from django.http import HttpResponse
from django.shortcuts import render
from appMany.models import *
# Create your views here.
def index(request):
pass
return HttpResponse("路由测试++")
def add(request):
# 添加用户
# for i in range(1, 10):
# user.objects.create(name=f'谢凡{i}', age=i * 6)
# 让谢凡2 收藏 阿凡达1
userM = user.objects.get(name='谢凡2')
videoM = moive.objects.get(name='阿凡达')
videoM = moive.objects.get(name='成龙离线')
# 用户添加收藏电影
# userM.moives.add(videoM)
# 添加收藏得第二种写法
videoM.user_set.add(userM)
return HttpResponse("添加成功")
2.多对多增删改查---删 view.py
def delete(request):
# 单表操作
# user.objects.filter(name='谢凡9').delete()
# 删除中间表
user1 = user.objects.get(name='谢凡2')
user1.moives.filter(name='阿凡达').delete()
return HttpResponse("删除成功")
3.多对多增删改查---查 view.py
def getUserM(request):
user1 = user.objects.get(name='谢凡2')
print(user1.moives.all())
return HttpResponse("查询汇总")
改由于跟单表类似https://www.xiefansq.cn/forum.ph ... &extra=page%3D1 不再赘述
一般就是怪原始表,不改中间表
|