是否有更好的方法来执行以下操作:
if column_sort == 'size':
if sort == 'desc':
results = results.order_by('-size')
else:
results = results.order_by('size')
elif column_sort == 'modified':
if sort == 'desc':
results = results.order_by('-last_modified')
else:
results = results.order_by('last_modified')
else:
if sort == 'desc':
results = results.order_by('-path')
else:
results = results.order_by('path')
results = results[:100]
例如,一种颠倒查询顺序的方法?
最佳答案
你只写一次代码怎么样?
valid_column_sorts = ['size', 'last_modified', 'path']
if column_sort in valid_column_sorts:
if sort == 'desc':
column_sort = '-' + column_sort
results = results.order_by(column_sort)
哦,是的,我看到排序字段和值之间存在一些差异,在这种情况下,您需要一个简单的映射,例如 results.order_by(col_map[column_sort])
关于python - 进行条件 django 查询的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14677104/