{{{
ValueError: Cannot serialize: <_sre.SRE_Pattern object at 0x24e8ac0>
}}}
A sample model:
{{{
from django.core.validators import RegexValidator
pattern = re.compile(r'foo', re.IGNORECASE)
validator = RegexValidator(pattern)
class Model(models.Model):
foo = models.CharField(
validators = [validator],
...
)
}}}
This is somehow expected, and when passing in the pattern uncompiled it
works.
But this won't allow to use re.IGNORE_CASE or other flags for `re.compile`
anymore.
RegexValidator should support a new argument `flags`, which would then be
used for non-compiled patterns (passed on to `re.compile`).
(https://github.com/django/django/blob/master/django/core/validators.py#L25)
Let me know, if I could provide a pull request / patch for this (as far as
I can see) trivial change.
(It seems like with the new migrations, supporting a pre-compiled pattern
is not really relevant anymore (but could be kept still))
(I found this related commit:
https://github.com/django/django/commit/e565e1332ddfbb44fe7e6139375e3c243af7398d)
--
Ticket URL: <https://code.djangoproject.com/ticket/22255>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* needs_better_patch: => 0
* needs_tests: => 0
* needs_docs: => 0
Comment:
Since you can pass the flag(s) using `(?i)` etc, this can be easily worked
around.
--
Ticket URL: <https://code.djangoproject.com/ticket/22255#comment:1>
* type: Bug => Cleanup/optimization
* easy: 0 => 1
* stage: Unreviewed => Accepted
Comment:
So, with the latest comment, are you suggesting you no longer think
patching this is useful?
Patching this makes sense to me: it can make code that uses RegexValidator
a lot clearer when flags are passed separately, and the change required in
Django is trivial.
For clarity: #21275 explains that the serialisation of validators is an
intentional feature.
--
Ticket URL: <https://code.djangoproject.com/ticket/22255#comment:2>
* owner: nobody => dekomote
* status: new => assigned
--
Ticket URL: <https://code.djangoproject.com/ticket/22255#comment:3>
* cc: dekomote (added)
* has_patch: 0 => 1
Comment:
Pull request here https://github.com/django/django/pull/2427
--
Ticket URL: <https://code.djangoproject.com/ticket/22255#comment:4>
Comment (by dekomote):
Updated the patch https://github.com/django/django/pull/2427
--
Ticket URL: <https://code.djangoproject.com/ticket/22255#comment:5>
* type: Cleanup/optimization => Bug
* stage: Accepted => Ready for checkin
Comment:
FWIW, the patch looks good to me.
Thanks!
--
Ticket URL: <https://code.djangoproject.com/ticket/22255#comment:6>
* type: Bug => Cleanup/optimization
--
Ticket URL: <https://code.djangoproject.com/ticket/22255#comment:7>
* needs_better_patch: 0 => 1
Comment:
Left a comment on the patch. Minor issue in the docs.
--
Ticket URL: <https://code.djangoproject.com/ticket/22255#comment:8>
* status: assigned => closed
* resolution: => fixed
Comment:
In [changeset:"4d0c5f61427a8e67552ee2d777fffbadc7aff3b2"]:
{{{
#!CommitTicketReference repository=""
revision="4d0c5f61427a8e67552ee2d777fffbadc7aff3b2"
Fixed #22255 -- Added support for specifying re flags in RegexValidator
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/22255#comment:9>
* needs_better_patch: 1 => 0
Comment:
This was also backported to 1.7, thanks for the patch :)
--
Ticket URL: <https://code.djangoproject.com/ticket/22255#comment:10>