Opened 20 months ago

Closed 19 months ago

Last modified 14 months ago

#21275 closed Bug (fixed)

Cannot use migrations if model field specifies validators

Reported by: timo Owned by: Tim Graham <timograham@…>
Component: Migrations Version: master
Severity: Normal Keywords:
Cc: loic@… Triage Stage: Unreviewed
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no


My assumption is that we shouldn't try to serialize the validators attribute.


  File "/home/tim/.virtualenvs/foo/local/lib/python2.7/site-packages/django/db/migrations/", line 185, in serialize
    raise ValueError("Cannot serialize: %r" % value)
ValueError: Cannot serialize: <django.core.validators.RegexValidator object at 0x1bacc10>

Change History (8)

comment:1 Changed 20 months ago by timo

After discussion with loic84 in #django-developers, it appears that validators should be serializable and that this error is due to the regex used by the username field of contrib.auth.models.AbstractUser not being serializable. Loic says validators may be useful for data migrations, hence a possible reason not to exclude them entirely.

comment:2 Changed 20 months ago by loic84

  • Cc loic@… added
  • Has patch set
  • Needs tests set

comment:3 Changed 20 months ago by loic84

Another POC around the concept of a deconstructible decorator.

comment:4 Changed 19 months ago by loic84

  • Needs tests unset


Note that this will be needed if/when #21295 is merged.

comment:5 Changed 19 months ago by Tim Graham <timograham@…>

  • Owner set to Tim Graham <timograham@…>
  • Resolution set to fixed
  • Status changed from new to closed

In e565e1332ddfbb44fe7e6139375e3c243af7398d:

Fixed #21275 -- Fixed a serializer error when generating migrations for contrib.auth.

The migration serializer now looks for a deconstruct method on any object.

comment:6 Changed 14 months ago by erikr

Shouldn't this also be added to the release notes? If anyone has their own model with a custom RegexValidator where they currently pass a compiled regex, they'll need to pass a string now, or they will also hit this issue, right?

comment:7 Changed 14 months ago by blueyed

Please note that there is #22255, which is about adding a new flags kwarg.

Note: See TracTickets for help on using tickets.
Back to Top