Django中如何正确保存带有ForeignKey外键关联的模型实例?
Django保存带ForeignKey外键关联的Mp3模型实例操作方法
首先确保Artist模型已完成定义,且已执行makemigrations和migrate命令生成对应数据库表结构。
方式1:绑定已保存的Artist实例
直接将已经保存到数据库的Artist实例赋值给外键字段后保存即可:
from .models import Mp3, Artist # 第一步:创建并保存Artist实例,也可以用filter/get等方法查询数据库中已有的Artist实例 artist = Artist(name="示例歌手") # 这里的字段替换为你Artist模型实际定义的字段 artist.save() # 第二步:创建Mp3实例,将artist实例赋值给外键字段 mp3 = Mp3(title="示例歌曲", artist=artist) mp3.save()
方式2:直接绑定Artist的主键值
如果你已经知道要关联的Artist实例的主键ID,可以直接给外键对应的字段名_id属性赋值,无需提前查询实例,性能更高:
from .models import Mp3 # 假设需要关联的Artist主键ID为1 mp3 = Mp3(title="示例歌曲", artist_id=1) mp3.save()
注意事项
- 外键字段默认是必填项,未赋值外键就保存Mp3实例会触发
IntegrityError报错 - 如果外键字段设置了
null=True允许为空,可以不用赋值,保存后外键字段存储NULL值 - 绑定的Artist实例必须已经完成保存、拥有主键值,直接绑定未保存的Artist实例会触发报错
内容的提问来源于stack exchange,提问作者lenisef439
相关产品推荐
相关产品推荐

