繁体   English   中英

重写Django queryset的Update方法

[英]Overriding the Update method of Django queryset

作为要求之一,我们将覆盖自定义Queryset中的Update方法。

示例代码如下。

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')

它无法从自定义查询集中调用基本查询集中的更新。

/ polls /处的TypeError必须是类型,而不是PollQuerySet

任何解决方案都值得赞赏。

如果我正确理解了您的问题,则无法调用超类中的update方法。 如果是这样,那是因为您将其称为错误。 方法如下:

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

对于python 3.x,类名和self成为可选参数。 所以上面的线可以缩短为

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM