[Django] #25599: __iexact filter matches strings of different length

12 views
Skip to first unread message

Django

unread,
Oct 23, 2015, 5:46:11 AM10/23/15
to django-...@googlegroups.com
#25599: __iexact filter matches strings of different length
-------------------------------------+-------------------------------------
Reporter: ahalma | Owner: nobody
Type: Uncategorized | Status: new
Component: Database layer | Version: 1.8
(models, ORM) | Keywords: iexact, filter, query,
Severity: Normal | model
Triage Stage: Unreviewed | Has patch: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
I would expect that the __iexact filter for querying models only results
in string matches that possibly differ in case, however, it also matches
prefixes...

{{{
MyModel.objects.filter(name__iexact='king').all()
[<MyModel: KING>, <MyModel: King of Spain>, <MyModel: King of Holland>]
}}}

This looks more like __icontains to me... I expected only [<MyModel:
KING>]

--
Ticket URL: <https://code.djangoproject.com/ticket/25599>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Oct 23, 2015, 5:49:39 AM10/23/15
to django-...@googlegroups.com
#25599: __iexact filter matches strings of different length
-------------------------------------+-------------------------------------
Reporter: ahalma | Owner: nobody
Type: Bug | Status: new

Component: Database layer | Version: 1.8
(models, ORM) |
Severity: Normal | Resolution:
Keywords: iexact, filter, | Triage Stage:
query, model | Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by ahalma):

* needs_better_patch: => 0
* type: Uncategorized => Bug
* needs_tests: => 0
* needs_docs: => 0


--
Ticket URL: <https://code.djangoproject.com/ticket/25599#comment:1>

Django

unread,
Oct 23, 2015, 8:21:17 AM10/23/15
to django-...@googlegroups.com
#25599: __iexact filter matches strings of different length
-------------------------------------+-------------------------------------
Reporter: ahalma | Owner: nobody
Type: Bug | Status: new

Component: Database layer | Version: 1.8
(models, ORM) |
Severity: Normal | Resolution:
Keywords: iexact, filter, | Triage Stage:
query, model | Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Old description:

> I would expect that the __iexact filter for querying models only results
> in string matches that possibly differ in case, however, it also matches
> prefixes...
>
> {{{
> MyModel.objects.filter(name__iexact='king').all()
> [<MyModel: KING>, <MyModel: King of Spain>, <MyModel: King of Holland>]
> }}}
>
> This looks more like __icontains to me... I expected only [<MyModel:
> KING>]

New description:

I would expect that the `__iexact` filter for querying models only results
in string matches that possibly differ in case, however, it also matches
prefixes...

{{{
MyModel.objects.filter(name__iexact='king').all()
[<MyModel: KING>, <MyModel: King of Spain>, <MyModel: King of Holland>]
}}}

This looks more like `__icontains` to me... I expected only [<MyModel:
KING>]

--

Comment (by timgraham):

What database are you using?

--
Ticket URL: <https://code.djangoproject.com/ticket/25599#comment:2>

Django

unread,
Oct 23, 2015, 12:05:06 PM10/23/15
to django-...@googlegroups.com
#25599: __iexact filter matches strings of different length
-------------------------------------+-------------------------------------
Reporter: ahalma | Owner: nobody
Type: Bug | Status: closed

Component: Database layer | Version: 1.8
(models, ORM) |
Severity: Normal | Resolution: invalid

Keywords: iexact, filter, | Triage Stage:
query, model | Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by ahalma):

* status: new => closed
* resolution: => invalid


Old description:

> I would expect that the `__iexact` filter for querying models only
> results in string matches that possibly differ in case, however, it also
> matches prefixes...
>
> {{{
> MyModel.objects.filter(name__iexact='king').all()
> [<MyModel: KING>, <MyModel: King of Spain>, <MyModel: King of Holland>]
> }}}
>
> This looks more like `__icontains` to me... I expected only [<MyModel:
> KING>]

New description:

I would expect that the __iexact filter for querying models only results
in string matches that possibly differ in case, however, it also matches
prefixes...

{{{
MyModel.objects.filter(name__iexact='king').all()
[<MyModel: KING>, <MyModel: King of Spain>, <MyModel: King of Holland>]
}}}

This looks more like __icontains to me... I expected only [<MyModel:
KING>]

--

--
Ticket URL: <https://code.djangoproject.com/ticket/25599#comment:3>

Reply all
Reply to author
Forward
0 new messages