我在我的 django 模型上使用开箱即用的 django 管理员搜索。我的一个用例是从条形码扫描中查找对象。问题是条形码有一堆前导零,这会阻止查询返回正确的条形码。
我的解决方案是覆盖 admin/search_form.html 模板,并在查询执行之前应用自定义模板过滤器来格式化字符串。我编写了一个名为 stripLeadingZeroes 的自定义模板过滤器,我可以成功加载它。然后,我覆盖了 search_form 模板,并在 cl.query 上使用了我的自定义模板过滤器....将其更改为cl.query|stripLeadingZeroes通过这些编辑,查询将执行,由于前导零不返回任何结果,然后应用在查询已经执行后过滤。
如何在查询之前格式化字符串?
这是我在 search_form 模板中更改的行
<input type="text" size="40" name="{{ search_var }}" value="{{ cl.query|stripLeadingZeroes }}" id="searchbar" />