Django: предотвращение удаления QuerySet на модели? - PullRequest
2 голосов
/ 28 сентября 2010

У меня есть модель, метод delete () которой я переопределил.Поскольку это не вызывается при массовом удалении QuerySet, я хотел бы отключить удаление QuerySet или как-то утверждать, что это не происходит.Есть ли способ сделать это?

1 Ответ

5 голосов
/ 28 сентября 2010

Вы можете создать пользовательский класс QuerySet и использовать его в менеджере, например ::

from django.db import models

class NoDeleteQuerySet(models.query.QuerySet):
    def delete(self):
        raise NotImplementedError("can't delete this queryset")

class NoDeleteQuerySetManager(models.Manager):
    def get_query_set(self):
        return NoDeleteQuerySet(self.model)

class MyModel(model.Model):
    objects = NoDeleteQuerySetManager()
...