2010-09-28 1 views
2

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

ответ

5

Вы можете создать пользовательский класс 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() 
+0

Потрясающе, спасибо. – kdt

 Смежные вопросы

  • Нет связанных вопросов^_^