[Django] #32500: Error "ValueError: Cannot serialize" while migrating a field containing uppercase letters

31 views
Skip to first unread message

Django

unread,
Mar 3, 2021, 4:33:09 AM3/3/21
to django-...@googlegroups.com
#32500: Error "ValueError: Cannot serialize" while migrating a field containing
uppercase letters
-------------------------------------------+---------------------------
Reporter: TimurKhan | Owner: (none)
Type: Bug | Status: new
Component: Error reporting | Version: 3.1
Severity: Normal | Keywords: serialize
Triage Stage: Unreviewed | Has patch: 0
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
-------------------------------------------+---------------------------
{{{
class FieldsType(models.Model):
name = models.SlugField(max_length=32) # Records contain words in
upper case, for example TYPE_COMPOSITE and ect.

def get_default_type(value):
return FieldsType.objects.filter(name=value).first()

class Scheme(models.Mode):
field_type = models.ForeignKey(FieldsType, on_delete=models.CASCADE,
default=get_default_type('TYPE_COMPOSITE'))

}}}

Result:

Traceback (most recent call last):
File "manage.py", line 22, in <module>
main()
File "manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "D:\Envs\django\lib\site-
packages\django\core\management\__init__.py", line 401, in
execute_from_command_line utility.execute()
File "D:\Envs\django\lib\site-
packages\django\core\management\__init__.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "D:\Envs\django\lib\site-packages\django\core\management\base.py",
line 330, in run_from_argv self.execute(*args, **cmd_options)
File "D:\Envs\django\lib\site-packages\django\core\management\base.py",
line 371, in execute output = self.handle(*args, **options)
File "D:\Envs\django\lib\site-packages\django\core\management\base.py",
line 85, in wrapped res = handle_func(*args, **kwargs)
File "D:\Envs\django\lib\site-
packages\django\core\management\commands\makemigrations.py", line 182, in
handle self.write_migration_files(changes)
File "D:\Envs\django\lib\site-
packages\django\core\management\commands\makemigrations.py", line 219, in
write_migration_files migration_string = writer.as_string()
File "D:\Envs\django\lib\site-packages\django\db\migrations\writer.py",
line 141, in as_string operation_string, operation_imports =
OperationWriter(operation).serialize()
File "D:\Envs\django\lib\site-packages\django\db\migrations\writer.py",
line 99, in serialize _write(arg_name, arg_value)
File "D:\Envs\django\lib\site-packages\django\db\migrations\writer.py",
line 63, in _write arg_string, arg_imports =
MigrationWriter.serialize(_arg_value)
File "D:\Envs\django\lib\site-packages\django\db\migrations\writer.py",
line 271, in serialize return serializer_factory(value).serialize()
File "D:\Envs\django\lib\site-
packages\django\db\migrations\serializer.py", line 199, in serialize
return self.serialize_deconstructed(path, args, kwargs)
File "D:\Envs\django\lib\site-
packages\django\db\migrations\serializer.py", line 86, in
serialize_deconstructed arg_string, arg_imports =
serializer_factory(arg).serialize()
File "D:\Envs\django\lib\site-
packages\django\db\migrations\serializer.py", line 336, in
serializer_factory raise ValueError(
ValueError: Cannot serialize: <FieldsType: TYPE_COMPOSITE>
There are some values Django cannot serialize into migration files.

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

Django

unread,
Mar 3, 2021, 4:39:43 AM3/3/21
to django-...@googlegroups.com
#32500: Error "ValueError: Cannot serialize" while migrating a field containing
uppercase letters
---------------------------------+--------------------------------------
Reporter: TimurKhan | Owner: TimurKhan
Type: Bug | Status: assigned

Component: Error reporting | Version: 3.1
Severity: Normal | Resolution:

Keywords: serialize | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
---------------------------------+--------------------------------------
Changes (by TimurKhan):

* owner: (none) => TimurKhan
* status: new => assigned


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

Django

unread,
Mar 3, 2021, 5:00:26 AM3/3/21
to django-...@googlegroups.com
#32500: Error "ValueError: Cannot serialize" while migrating a field containing
uppercase letters
---------------------------------+--------------------------------------
Reporter: TimurKhan | Owner: TimurKhan
Type: Bug | Status: closed

Component: Error reporting | Version: 3.1
Severity: Normal | Resolution: invalid

Keywords: serialize | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
---------------------------------+--------------------------------------
Changes (by Mariusz Felisiak):

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


Comment:

You should use `.pk`, see #25129 and
[https://docs.djangoproject.com/en/3.1/ref/models/fields/#default docs].

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

Reply all
Reply to author
Forward
0 new messages