视图中get_queryset的附加参数



我正在看的代码有:

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

最好在父类中默认包含任何返回同名函数的函数,特别是在您不知道它们是做什么的情况下。

例如,get_queryset查看存储在类的属性中的模型。如果您对该模型进行硬编码,那么在以后视图增长时可能会造成一些混乱。以后还可以有更多的函数,它们只会查看属性中的模型。如果你需要改变模型,你只需要在一个地方改变它。

虽然括号看起来是多余的,它应该是这样工作的:

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

最新更新