Opened 16 years ago
Last modified 16 years ago
#11220 closed
__similar in filter — at Version 1
| Reported by: | Filip Gruszczyński | Owned by: | nobody |
|---|---|---|---|
| Component: | Uncategorized | Version: | 1.0 |
| Severity: | Keywords: | ||
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description (last modified by )
I would like to propose a new filtering method for char fields, that could be used instead of __exact or __iexact. __similar would return models, which field is similar to the given string. Example use case looks like this: user wants to search for some term, so we try to find objects, that satisfy his query.
objects = Klass.objects.filter(name__iexact=user_term)
if objects.count() > 0:
return render_to_response('found.html', {'objects': 'objects'})
else:
names = Klass.objects.filter(name__similar=user_term).values('name')
return render_to_response('did_you_mean.html', {'names': names})
If he inputs name, that can't be found, we try to find to some suggestions, like Google does. I don't really know, if databases support this kind of operations. Could this be done? If it can be done and someone could point me, where I should start, I could try to create a patch.
Fixed formatting, please use preview.