#34877: KeyError for output_field in GeneratedField -------------------------------------+------------------------------------- Reporter: Paolo | Owner: nobody Melchiorre | Type: Bug | Status: new Component: Database | Version: 5.0 layer (models, ORM) | Severity: Release | Keywords: field, database, blocker | generated, output_field Triage Stage: | Has patch: 0 Unreviewed | Needs documentation: 0 | Needs tests: 0 Patch needs improvement: 0 | Easy pickings: 0 UI/UX: 0 | -------------------------------------+------------------------------------- Trying to get SQL code for a migrations I receive a `KeyEorr`
**Model** {{{#!python from decimal import Decimal from django.db import models from django.db.models import F, Value as V from django.db.models.functions import Round class Item(models.Model): price = models.DecimalField(max_digits=7, decimal_places=2) vat_price = models.GeneratedField( db_persist=True, expression=Round(F("price") * V(Decimal("1.22")), 2), output_field=models.DecimalField(max_digits=8, decimal_places=2), ) }}} **Step** {{{#!bash $ python -m manage makemigrations $ python -m manage sqlmigrate shop 0001 }}} **Traceback** {{{#!pycon Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/home/paulox/Projects/generatedfield/manage.py", line 22, in <module> main() File "/home/paulox/Projects/generatedfield/manage.py", line 18, in main execute_from_command_line(sys.argv) File "/home/paulox/Projects/generatedfield/.venv/lib/python3.11/site- packages/django/core/management/__init__.py", line 442, in execute_from_command_line utility.execute() File "/home/paulox/Projects/generatedfield/.venv/lib/python3.11/site- packages/django/core/management/__init__.py", line 436, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/paulox/Projects/generatedfield/.venv/lib/python3.11/site- packages/django/core/management/base.py", line 412, in run_from_argv self.execute(*args, **cmd_options) File "/home/paulox/Projects/generatedfield/.venv/lib/python3.11/site- packages/django/core/management/commands/sqlmigrate.py", line 38, in execute return super().execute(*args, **options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/paulox/Projects/generatedfield/.venv/lib/python3.11/site- packages/django/core/management/base.py", line 458, in execute output = self.handle(*args, **options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/paulox/Projects/generatedfield/.venv/lib/python3.11/site- packages/django/core/management/commands/sqlmigrate.py", line 80, in handle sql_statements = loader.collect_sql(plan) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/paulox/Projects/generatedfield/.venv/lib/python3.11/site- packages/django/db/migrations/loader.py", line 381, in collect_sql state = migration.apply(state, schema_editor, collect_sql=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/paulox/Projects/generatedfield/.venv/lib/python3.11/site- packages/django/db/migrations/migration.py", line 132, in apply operation.database_forwards( File "/home/paulox/Projects/generatedfield/.venv/lib/python3.11/site- packages/django/db/migrations/operations/models.py", line 96, in database_forwards schema_editor.create_model(model) File "/home/paulox/Projects/generatedfield/.venv/lib/python3.11/site- packages/django/db/backends/base/schema.py", line 506, in create_model self.deferred_sql.extend(self._model_indexes_sql(model)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/paulox/Projects/generatedfield/.venv/lib/python3.11/site- packages/django/db/backends/base/schema.py", line 1595, in _model_indexes_sql output.extend(self._field_indexes_sql(model, field)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/paulox/Projects/generatedfield/.venv/lib/python3.11/site- packages/django/db/backends/postgresql/schema.py", line 63, in _field_indexes_sql like_index_statement = self._create_like_index_sql(model, field) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/paulox/Projects/generatedfield/.venv/lib/python3.11/site- packages/django/db/backends/postgresql/schema.py", line 88, in _create_like_index_sql db_type = field.db_type(connection=self.connection) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/paulox/Projects/generatedfield/.venv/lib/python3.11/site- packages/django/db/models/fields/__init__.py", line 879, in db_type return column_type % data ~~~~~~~~~~~~^~~~~~ File "/home/paulox/Projects/generatedfield/.venv/lib/python3.11/site- packages/django/utils/datastructures.py", line 280, in __getitem__ value = super().__getitem__(key) ^^^^^^^^^^^^^^^^^^^^^^^^ KeyError: 'max_digits' }}} -- Ticket URL: <https://code.djangoproject.com/ticket/34877> Django <https://code.djangoproject.com/> The Web framework for perfectionists with deadlines. -- You received this message because you are subscribed to the Google Groups "Django updates" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-updates+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/0107018ad7d24178-b10d8ced-c95f-4b0a-ae86-df237393d299-000000%40eu-central-1.amazonses.com.