如何在Django的字段查找中转义下划线?

时间:2018-01-15 23:31:48

标签: django

默认情况下,Django不支持字段名称中的尾随下划线,因为它会弄乱field lookups。不幸的是,我发现自己处于Postgres表创建而没有使用Django的情况下,现在我必须执行以下操作:

queryset = queryset.filter(**{field + '__icontains': value})

field可能有下划线。我怎么告诉Django忽略第一个三重下划线并找到该字段?它清楚地知道该字段,因为它将其显示为错误中的一个选项:

  

django.core.exceptions.FieldError:无法将关键字“ccc”解析为字段。选择是:_bbb,aa_a,ccc _

但我没有找到任何方法强迫filter做我想做的事。是否有一种语法让我明确指定字段名称和查找?

1 个答案:

答案 0 :(得分:3)

您可以在模型中为该字段指定适当的名称,并使用db_column来引用基础名称。

ccc = models.CharField(..., db_column="real_name_")