Opened 14 years ago

Closed 9 years ago

#15678 closed New feature (needsinfo)

Different behaviour for DecimalField on MySQL and SQLite

Reported by: max@… Owned by: nobody
Component: Database layer (models, ORM) Version: 1.3
Severity: Normal Keywords: sqlite, mysql, decimalfield
Cc: Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Consider the following model:

class Product(models.Model):
    title   = models.CharField('Title', max_length=250)
    price   = models.DecimalField('Price', max_digits=9, decimal_places=2, default=0)

If you create or modify an object in the admin using MySQL and set the price to "0" with will automatically become "0.00".

But if you do the same using SQLite3, it will allow it to stay "0".

I know that the two backends doesn't provide the same features support and both store DecimalFiels differently, but couldn't the ORM deal with it transparently ?

Change History (7)

comment:1 by Luke Plant, 14 years ago

Type: New feature

comment:2 by Luke Plant, 14 years ago

Severity: Normal

comment:3 by Jacob, 14 years ago

Triage Stage: UnreviewedAccepted

I'm on the fence here - different dbs are different. Is there a compelling argument that we should bother fixing this?

comment:4 by anonymous, 14 years ago

Well I think Django should abstract databases inconsistencies when it's possible.. since we are perfectionists with deadlines :>

Furthermore in this case we are talking about the representation of a specific data type. So I think it would make sense to handle it with input validation, I don't think that it counts as emulating a missing database feature.

comment:5 by Aymeric Augustin, 13 years ago

UI/UX: unset

Change UI/UX from NULL to False.

comment:6 by Aymeric Augustin, 13 years ago

Easy pickings: unset

Change Easy pickings from NULL to False.

comment:7 by Tim Graham, 9 years ago

Resolution: needsinfo
Status: newclosed

I don't understand where the discrepancy is that needs to be fixed.

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