2017-02-20 3 views
3

Als Teil einer der Anforderung überschreiben wir die Update-Methode in dem benutzerdefinierten Queryset.Überschreiben der Update-Methode von Django queryset

Beispielcode ist wie folgt.

from django.db.models.query import QuerySet 

class PollQuerySet(QuerySet): 
    def update(self, *args, **kwargs): 
     # Some Business Logic 

     # Call super to continue the flow -- from below line we are unable to invoke super 
     super(self, kwargs) 

class Question(models.Model): 
    objects = PollQuerySet.as_manager() 

    question_text = models.CharField(max_length=200) 
    pub_date = models.DateTimeField('date published') 

Es ist nicht in der Lage Update in Basis Queryset aus der Custom Queryset aufzurufen.

Typeerror bei/Umfragen/ sein Typ muss, nicht PollQuerySet ist

Jede Lösung sehr geschätzt.

Antwort

3

Wenn ich Ihre Frage richtig verstanden habe, können Sie die Update-Methode in der Super-Klasse nicht aufrufen. wenn das so ist, weil du es falsch nennst. Hier ist, wie:

super(PollQuerySet,self).update(*args, **kwargs) 

Im Fall von Python 3.x der Klassenname und Selbst optionale Parameter werden. So kann die obige Linie

super().update(*args, **kwargs) 
+0

Frage mit python3 so, 'super(). Update (* args, ** kwargs)' tagged verkürzt werden. :) – danielcorreia

+0

Sorry übersehen, danke für das Aufzeigen – e4c5