假设我有这个模型:
class UserBook(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, unique=True)
book = models.ForeignKey(Book, on_delete=models.PROTECT)
用户一次只能借一本书。如果用户被删除,我希望这个模型的实例被删除,但是如果一本书被删除,我不希望它们被删除(错误地,只是一个预防措施)。
使用上述约束删除用户时,预期的行为是什么?我得到:
无法删除模型“UserBook”的某些实例,因为它们是通过受保护的外键引用的
有没有办法实现我想要的?我试图删除UserBook上的pre_save
/post_save
信号与User
作为发送者,但都不工作。
您试图实现的是通过RESTRICT
选项完成的。
以下是官方文件中的一个示例
他们还使用模型。ForeignKey
而不是模型。OneToOne
这篇文章也可能有帮助https://stackoverflow.com/a/38389488/13482680
问题内容: 当我们在具有不同数据类型的两个表上执行时,由于SQL Standard而产生的预期行为是什么: 给 将varchar值“ asd”转换为数据类型int时,转换失败。 但是标准中定义了什么? 问题答案: 如果要在每个查询中使用列,则必须具有相同的类型。必须转换为varchar,因为它是varchar。请尝试以下解决方案 我替换为-我认为这是拼写错误。
问题内容: 考虑以下代码: 为什么会这样呢? 为确保以上内容正确无误,我刚刚在Windows上的Python 2.5.4、2.6.5、2.7b2,Python 3.1和Linux上的Python 2.7b1上进行了测试。 看起来所有这些对象之间都具有一致性,所以这是设计使然。我想念什么吗? 我只是从我的一些个人域过滤脚本中发现失败了。 问题答案: 验证对象的身份,和Python,任何执行时,它符合
问题内容: 我想要一个带有来自同一表的2个外键的Django模型。这是一个事件表,其中有两列用于员工:“参与者”和“接收者”。但是我得到这个错误: 错误:一个或多个模型未通过验证:tasks.task:中间模型TaskEvent具有多个到Employee的外键,这是模棱两可的,不允许使用。 有没有更好的方法对此建模?谢谢 我想我要添加一张桌子。其中有两个记录,每个与之相关的两个雇员中的每个。有人知
问题内容: 我试图用来创建我的,以确保我的构建/项目的质量。该项目也需要使用和。一切在我的本地计算机上都可以正常运行,但是现在我正在尝试使环境一致,可重现。当我尝试在新的虚拟机中运行时,会中断一个在本机中正常运行但 不在 新vm中运行的。 我检查了版本,,,(其)一切都是一样的。但是,我的Maven项目在此测试中失败了。 我在这里想念什么?任何想法,建议都会受到赞赏,因为我现在还没有想法,到目前为
我正在尝试添加一个外键的新列。我可以使用两个单独的命令添加列和外键约束: 有没有办法用一个ALTER TABLE命令而不是两个来做到这一点?我想不出任何可行的办法。
为什么它不打印“processTextPosition:ContainsKey”?