我有以下一段代码(django,python):

def function(self, some_id):
    if some_id:
        return Model1.objects.filter(model2__id=some_id)
    else:
        return Model1.objects.all()

我想知道是否可以使用单个 return 语句重构此代码? Model1 在 Model2.id 上有一个外键。

最佳答案

def function(self, some_id):
    filter_kwargs = {}

    if some_id:
        filter_kwargs['model2__id'] = some_id

    return Model1.objects.filter(**filter_kwargs)

应该满足您的问题,尽管我会说它很可能如书面所示。

关于python - Django:按值过滤或返回所有记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50956139/

10-14 13:42