目录
多对多关系
在model.py定义好两张表
执行迁移创建数据库
# 生成迁移文件
python manage.py makemigrations
#执行迁移文件
python manage.py migrate
添加演员和电影
添加演员和电影的关联
movie_obj = Movie.objects.filter(pk=1).first() # 获取电影表的电影
actor_obj = Actor.objects.filter(actor_name='赵四').first()
actor_id = actor_obj.id # 获取演员的id
movie_obj.actor.add(actor_id) # 添加
获取电影表所关联的演员
movie_obj = Movie.objects.filter(pk=1).first() # 获取电影表的电影
actor_list = movie_obj.actor.all() # 获取电影表所关联的所有演员
for i in actor_list:
print(i.actor_name) # 循环遍历输出
反向获取演员所演过的电影
actor_obj = Actor.objects.filter(pk=1).first() # 获取演员对象
print(actor_obj.movie_set.all()) # 获取对应的关联电影进行输出
更新电影表对应的演员
actor01_obj = Actor.objects.filter(actor_name='李二').first()
actor01_id = actor01_obj.id # 获取演员李二的id
actor02_obj = Actor.objects.filter(actor_name='张三').first()
actor02_id = actor02_obj.id # 获取演员张三的id
movie_obj.actor.set([actor01_id, actor02_id]) # 进行修改,!!!参数必须为列表
删除对应关系
actor01_obj = Actor.objects.filter(actor_name='李二').first()
actor01_id = actor01_obj.id # 获取演员李二的id
actor02_obj = Actor.objects.filter(actor_name='张三').first()
actor02_id = actor02_obj.id # 获取演员张三的id
movie_obj.actor.remove(actor01_id, actor02_id) # 删除与演员李二和张三对对应关系