覆盖Django查询的Update方法

2024-03-28 12:31:56 发布

您现在位置:Python中文网/ 问答频道 /正文

作为其中一个需求的一部分,我们将重写自定义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')

它无法从自定义Queryset调用基Queryset中的update。在

TypeError at /polls/ must be type, not PollQuerySet

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


Tags: to方法fromself示例datemodelsupdate
1条回答
网友
1楼 · 发布于 2024-03-28 12:31:56

如果我正确地理解了您的问题,您将无法在超级类中调用update方法。如果是这样,那是因为你说的不对。方法如下:

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

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

^{pr2}$

相关问题 更多 >