Python getattr关键字参数筛选
假设我有:Python getattr关键字参数筛选,python,django,python-3.x,Python,Django,Python 3.x,假设我有: if self.model_name == 'Column': model_objects = model_objects.filter(stub__in=params) elif self.model_name == 'Person': model_objects = model_objects.filter(web_slug__in=params) elif self.model_na
if self.model_name == 'Column':
model_objects = model_objects.filter(stub__in=params)
elif self.model_name == 'Person':
model_objects = model_objects.filter(web_slug__in=params)
elif self.model_name == 'Tag':
model_objects = model_objects.filter(name__in=params)
有没有一种干净的方法可以使用getattr/setattr使它像
def clean_cool_filter(model_name, search_param):
# cool stuff
model_objects = clean_cool_filter('Column', 'stub')
我想我正在努力将字符串转换为关键字args
感谢您对karthikr的解决方案稍加改进
def clean_cool_filter(model_name, params):
clause = {
"Column": 'stub__in',
"Person": 'web_slug__in',
"Tag": 'name__in'
}.get(model_name)
if clause:
return {clause: params}
else:
return {}
我想这样比较安全