django 视图中get_queryset的附加参数

y4ekin9u  于 2023-04-07  发布在  Go
关注(0)|答案(1)|浏览(110)

我在看一段代码,它有:

queryset = MyModel.objects.all()
get_queryset(self, *args, **kwargs):
    return (super().get_queryset(*args, **kargs).order_by(self.name))

这里的args和kwargs的目的是什么,为什么不这样做:

get_queryset(self):
    return MyModel.objects.order_by(self.name))```
eoigrqb6

eoigrqb61#

最好在父类中默认包含任何返回同名函数的函数,特别是在您不知道它们做什么的情况下。
例如,get_queryset查看存储在类的属性中的模型。如果您硬编码该模型,则可能会在以后视图增长时造成一些混乱。您可以稍后拥有更多函数,这些函数将仅查看属性中的模型。然后,如果您需要更改模型-您只需在一个位置更改它。
虽然括号看起来是多余的,但它应该是这样工作的:

get_queryset(self, *args, **kwargs):
    return super().get_queryset(*args, **kargs).order_by(self.name)

相关问题