gpt4 book ai didi

python - Django 删除 OneToOneField

转载 作者:行者123 更新时间:2023-12-01 08:23:01 25 4
gpt4 key购买 nike

我正在创建一个 Django Web 应用程序。我有一个名为 vote 的应用。我想通过与其他应用程序的一对一关系“注册”此应用程序。例如,我有一个文章应用程序,我想“注册”投票:

vote = models.OneToOneField(Vote, on_delete=models.CASCADE, default=None, null=True)

我更改了文章的保存方法:

def save(self, *args, **kwargs):
self.vote = Vote.objects.create()
super().save(*args, **kwargs)

问题是这样的:我希望在删除文章时删除投票,但这不起作用。当我删除文章时,只有文章将被删除,而投票仍然存在。

最佳答案

这是正确的行为。您想要删除一篇文章并希望删除其投票。所以你应该把你的关系(一对一)放在Vote模型上,而不是文章上。所以替换:

vote = models.OneToOneField(Vote, on_delete=models.CASCADE, default=None, null=True)

致:

article = models.OneToOneField(Article, on_delete=models.CASCADE)

但是在投票模型上。

Note that: do not use default and null on this case.

此外,您可以阅读此Link了解在哪里放置关系以及级联如何删除它。

关于python - Django 删除 OneToOneField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54502043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com