﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
37275	DecimalField with no precision doesn't work on SQLite	Matt Cooper		"Django 6.1 introduced `DecimalField`s without precision specifiers. SQLite is called out as a platform where this mode is supported, but objects stored with precision-less DecimalFields can't be retrieved from the database.


{{{
# models.py
from django.db import models

class DecimalWithPrecision(models.Model):
    value = models.DecimalField(max_digits=4, decimal_places=2)

class DecimalWithoutPrecision(models.Model):
    value = models.DecimalField()
}}}

{{{
# pyproject.toml
[project]
name = ""repro-noprecision-decimal-failure""
version = ""0.1.0""
description = ""Add your description here""
readme = ""README.md""
requires-python = "">=3.14""
dependencies = [
    ""django==6.1.0"",
]
}}}

{{{
# repro in REPL; linebreaks added for clarity and stack trace lightly anonymized

>>> [DecimalWithPrecision(value=3.14).save(), DecimalWithoutPrecision(value=3.14).save()]
[None, None]

>>> DecimalWithPrecision.objects.first()
<DecimalWithPrecision: DecimalWithPrecision object (1)>

>>> DecimalWithoutPrecision.objects.first()
Traceback (most recent call last):
  File ""<console>"", line 1, in <module>
  File ""/repro-noprecision-decimal-failure/.venv/lib/python3.14/site-packages/django/db/models/manager.py"", line 87, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File ""/repro-noprecision-decimal-failure/.venv/lib/python3.14/site-packages/django/db/models/query.py"", line 1189, in first
    for obj in queryset[:1]:
               ~~~~~~~~^^^^
  File ""/repro-noprecision-decimal-failure/.venv/lib/python3.14/site-packages/django/db/models/query.py"", line 434, in __iter__
    self._fetch_all()
    ~~~~~~~~~~~~~~~^^
  File ""/repro-noprecision-decimal-failure/.venv/lib/python3.14/site-packages/django/db/models/query.py"", line 2239, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
                         ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File ""/repro-noprecision-decimal-failure/.venv/lib/python3.14/site-packages/django/db/models/query.py"", line 130, in __iter__
    for row in compiler.results_iter(results):
               ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File ""/repro-noprecision-decimal-failure/.venv/lib/python3.14/site-packages/django/db/models/sql/compiler.py"", line 1577, in results_iter
    converters = self.get_converters(fields)
  File ""/repro-noprecision-decimal-failure/.venv/lib/python3.14/site-packages/django/db/models/sql/compiler.py"", line 1525, in get_converters
    backend_converters = self.connection.ops.get_db_converters(expression)
  File ""/repro-noprecision-decimal-failure/.venv/lib/python3.14/site-packages/django/db/backends/sqlite3/operations.py"", line 282, in get_db_converters
    converters.append(self.get_decimalfield_converter(expression))
                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File ""/repro-noprecision-decimal-failure/.venv/lib/python3.14/site-packages/django/db/backends/sqlite3/operations.py"", line 320, in get_decimalfield_converter
    -expression.output_field.decimal_places
TypeError: bad operand type for unary -: 'NoneType'
}}}"	Bug	new	Database layer (models, ORM)	6.1	Normal		decimal		Unreviewed	0	0	0	0	0	0
