gpt4 book ai didi

python - 使用 `get_or_create` 时不隐藏软删除实例

转载 作者:行者123 更新时间:2023-11-28 18:59:49 28 4
gpt4 key购买 nike

假设您正在像这样修改管理器中的 get_queryset

class VoteManager(models.Manager):

def get_queryset(self):

return super().get_queryset().filter(is_deleted=False)



class Vote(models.Model):

objects = VoteManager()

这按预期工作,但问题是当您在 Vote 模型上使用类似 get_or_create 的东西时,即使它存在于数据库中,它也会创建一个实例,因为我们修改了 get_queryset() 方法。我们可以在创建时不隐藏软删除的实例吗??

最佳答案

您也可以尝试覆盖 get_or_create 方法。像这样:

class VoteQuerySet(models.query.QuerySet):

def get_or_create(...):
"""Your realization"""


class VoteManager(models.Manager):

def get_queryset(self):

return VoteQuerySet(model=self.model, using=self._db, hints=self._hints).filter(is_deleted=False)

关于python - 使用 `get_or_create` 时不隐藏软删除实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53968557/

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