我有一个属性,以字符串形式传入,我用它来调用X.objects.filter(** {string:TION})。这将返回X类型的所有对象,其属性字符串为“TION”。是否有可能用__icontains,__contains来做这种** kwargs输入?这会怎么样?
答案 0 :(得分:2)
只需从您的属性中构建一个包含__contains
的字符串。
更明确地说,你需要类似的东西:
query_type = '{0}__contains'
query_key = query_type.format(string)
X.objects.filter(**{query_key: 'TION'})
或只是
X.objects.filter(**{string + '__contains': 'TION'})