Opened 14 years ago
Closed 9 years ago
#15678 closed New feature (needsinfo)
Different behaviour for DecimalField on MySQL and SQLite
Reported by: | 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 , 14 years ago
Type: | → New feature |
---|
comment:2 by , 14 years ago
Severity: | → Normal |
---|
comment:3 by , 14 years ago
Triage Stage: | Unreviewed → Accepted |
---|
comment:4 by , 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:7 by , 9 years ago
Resolution: | → needsinfo |
---|---|
Status: | new → closed |
I don't understand where the discrepancy is that needs to be fixed.
I'm on the fence here - different dbs are different. Is there a compelling argument that we should bother fixing this?