Django能否在filter或get等的时候条件名(field name)是个变量?

比如筛选一个model

models.objects.get(***field_name***=conditions)

我的问题是field_name能不能是个变量的结果? 例如

field_list = {'field_name': name}
models.objects.get(field_list['field_name']=conditions)
或者
field_list = [name, age, gender, ...]
models.objects.get(field_list[0]=conditions)

请问各位有方法能实现这样的效果么? 我目前尝试的方法例如getattr等都没有效果


一只萌萌小番薯
浏览 1250回答 1
1回答

BIG阳

var = "field_name"field_list = {var:conditions}# field_list {"field_name":conditions}models.objects.get(**field_list)# models.objects.get(**field_list) = models.objects.get(key=conditions)**kwargs会将字典中的kv键值对按照k=v的格式作为函数的参数.字典的key是可以通过变量设置的,当然必须是字符串.
打开App,查看更多内容
随时随地看视频慕课网APP