【发布时间】:2015-08-12 20:37:50
【问题描述】:
我有一个可选参数列表,用于在 Django 中进行过滤,并且正在尝试提出应用这些过滤器的最佳解决方案。我的第一个想法是做类似的事情:
if param_1 != 'all' and param_2 != 'all': # etc.
class_var = ClassName.objects.filter(param_1__name=param_1, param_2__name=param_2) # etc.
else:
class_var = ClassName.objects.all()
但由于参数都是可选的,我可能只想根据param_1 进行过滤,并将其余设置为'all'。当然,另一种选择是这样说:
class_var = ClassNam.objects.all()
if param_1 != 'all':
class_var.filter(param_1__name=param_1)
if param_2 != 'all':
class_var.filter(param_2__name=param_2)
# etc.
但在我看来,这似乎并不真正有效。我只是希望对我可能能够执行这些选项过滤器的其他方式获得一些想法。
【问题讨论】:
标签: python django django-queryset