默认情况下,Django不支持字段名称中的尾随下划线,因为它会弄乱field lookups。不幸的是,我发现自己处于Postgres表创建而没有使用Django的情况下,现在我必须执行以下操作:
queryset = queryset.filter(**{field + '__icontains': value})
此field
可能有下划线。我怎么告诉Django忽略第一个三重下划线并找到该字段?它清楚地知道该字段,因为它将其显示为错误中的一个选项:
django.core.exceptions.FieldError:无法将关键字“ccc”解析为字段。选择是:_bbb,aa_a,ccc _
但我没有找到任何方法强迫filter
做我想做的事。是否有一种语法让我明确指定字段名称和查找?
答案 0 :(得分:3)
您可以在模型中为该字段指定适当的名称,并使用db_column
来引用基础名称。
ccc = models.CharField(..., db_column="real_name_")