Let's say you are modifying get_queryset in you manager something like this
class VoteManager(models.Manager):
def get_queryset(self):
return super().get_queryset().filter(is_deleted=False)
class Vote(models.Model):
objects = VoteManager()
This works as expected but the problem when you use something like get_or_create on Vote model it creates an instance even if it is present in the database because we modified the get_queryset() method. Can we not shadow the soft-deleted instance while creating??