title: Django - calling custom update behaviour when overriding its behavour
body: <p>What I am trying to do is best described by example. Consider the following:</p>
  
  <pre><code>class QuerySetManager(models.Manager):
      def get_queryset(self):
          result = self.model.QuerySet(self.model)
          try:
              result = result.filter(is_deleted=False)
          except FieldError:
              pass
          return result
  
  class MyModel(model.Models):
      # core fields
      objects = QuerySetManager()
      class Meta:
          managed = False
          db_table = 'my_model'
  
      class QuerySet(QuerySet):
          def update(self, *args, **kwargs):
             if something_special:
                # handle that special case
             else:
                # call custom update
  </code></pre>
  
  <p>In effect, I am trying to override the update method of QuerySet's superclass. If something special happens, I would like to implement update process myself, and otherwise - call the standard update method of the superclass.
  Any help on what the correct syntax is?</p>
  
  <p><strong>UPDATE</strong>
  Let me provide a bit detailed background.
  I am using the pattern found <a href="https://djangosnippets.org/snippets/734/" rel="nofollow noreferrer">here</a>.
  The entire architecture looks like this:</p>
  
  <pre><code>class DeleteMixin(models.Model):
      is_deleted = models.BooleanField(default=False)
  
      class Meta:
          abstract = True
  
  class QuerySetManager(models.Manager):
      def get_queryset(self):
          result = self.model.QuerySet(self.model)
          try:
              result = result.filter(is_deleted=False)
          except FieldError:
              pass
          return result
  
  class Sms(DeleteMixin):
     # core fields 
     objects = QuerySetManager()
  
     class Meta:
         managed = False
         db_table = 'sms'
     class QuerySet(QuerySet):
         def inbox(self, user):
             return self.filter(sms_type_id = 1)
  
         def outbox(self, user):
             return self.filter(sms_type_id = 2)
         def update(self, *args, **kwargs):
             if something_special:
                # handle that special case
             else:
                # the issue in question - call custom update
  </code></pre>
  
  <p>This architecture enables me to:</p>
  
  <ul>
  <li>exclude records with <code>is_deleted</code> field equal to 1 (for those tables where there is such field)</li>
  <li>use chainable filters like sms.objects.inbox().outbox()</li>
  </ul>