Django - 夹具中的外键

Posted

技术标签:

【中文标题】Django - 夹具中的外键【英文标题】:Django - Foreign Keys in Fixtures 【发布时间】:2011-12-15 09:09:44 【问题描述】:

我有一个“用户”对象的夹具(只是默认的 Django 身份验证对象),并且正在尝试创建一个“配置文件”对象的夹具。每个配置文件都与用户对象具有一对一的关系,并为该用户定义了更多自定义内容。

据我所知,在夹具中处理外键的正常方法是将外对象的主键硬编码到夹具中。有没有办法避免这样做?

基本上,我试图在夹具中使用类似“用户”:用户名而不是“用户”:pk'。

有什么办法吗?

【问题讨论】:

当您说“fixture”时,您指的是 django TestCase 正在寻找并且也可以使用 django manage loaddata 加载的 json/yaml 格式的fixture? 【参考方案1】:

您正在尝试使用自然键进行序列化,here 解释。

您基本上需要在这些特殊的管理器和模型方法中定义如何从其他字段中获取对象。

才发现这个问题在 9 年前就有人问过了,什么?为什么它会出现在 顶部的提要中?

【讨论】:

嘿,它帮助了我,所以感谢您在 9 年后的回复! =)

以上是关于Django - 夹具中的外键的主要内容,如果未能解决你的问题,请参考以下文章

MySQL基础之 主键外键设置

如何在DJANGO里,向有外键的DB里插入数据

外键为啥必须是唯一键?为啥至少唯一键才能作为其他表的外键?不唯一为啥不可以?

数据库—超键候选键主键外键

主键外键和子查询

sql中啥叫主键表,啥叫外键表