2010-09-28 11 views
2

J'ai un modèle dont j'ai supprimé la méthode delete(). Parce que cela n'est pas appelé sur une suppression de QuerySet en bloc, je voudrais désactiver la suppression de QuerySet ou en quelque sorte affirmer que cela se produit. Y'a-t'il un quelconque moyen d'y arriver?Django: empêcher les suppressions de QuerySet sur un modèle?

Répondre

5

Vous pouvez créer une classe personnalisée QuerySet et l'utiliser dans un gestionnaire, .: par exemple

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

fantastique, je vous remercie. – kdt