微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Django 安全删除

如何解决Django 安全删除

我在我的 Django 项目 https://pypi.org/project/django-safedelete/ 中使用了以下库。我所有的模型都设置为“级联软删除”,但我遇到了一些麻烦。我遇到的问题的一个例子:

在我的应用程序中,我有一个“供应商”模型,它具有主“用户”模型的外键。这些也都设置为级联软删除

class vendorProfile(SafeDeleteModel):
    _safedelete_policy = SOFT_DELETE_CASCADE
    creation_time = models.DateTimeField(auto_Now_add=True,editable=False)
    modified_time = models.DateTimeField(auto_Now=True)

    user = models.OnetoOneField(User,on_delete=models.CASCADE,primary_key=True,related_name='vendor_profile')

问题是这样的 - 假设我进入 Django 管理员删除一个供应商模型。它不会删除关联的用户模型,因为它不应该删除。所以说用户仍然存在,问题总是在代码调用中过去,例如:

hasattr(user,"vendor_profile")

即使删除了供应商资料,也会返回 True。

供应商配置文件对象在管理员中不可见,我很困惑为什么会出现这种差异。我应该使用不同的库/制作自己的抽象模型吗?

先谢谢你!

解决方法

对您来说可能不是最佳选择,但您可以检查 django-safedelete 提供的 VendorProfile 的 deleted 日期时间字段是否不为空。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。