Opened 16 years ago
Closed 10 years ago
#11523 closed Bug (wontfix)
ORM/MySQL backend doesn't set pk when Warning exception is raised
| Reported by: | Tomasz Zieliński | Owned by: | nobody |
|---|---|---|---|
| Component: | Database layer (models, ORM) | Version: | |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Accepted | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
Link to the discussion:
http://groups.google.com/group/django-users/browse_thread/thread/7c726fe6531abaaf
Code:
from MySQLdb import Warning as Warning
from django.db import models
import unittest
class TestModel(models.Model):
char_field = models.CharField(max_length=5)
class Case1(unittest.TestCase):
def test1(self):
print "Count 1:", TestModel.objects.count()
m = TestModel(char_field="123456")
try:
m.save()
except Warning:
print "Count 2:", TestModel.objects.count()
print "m.id=", m.id
print "all()[0].id=", TestModel.objects.all()[0].id
The above code prints:
Count 1: 0 Count 2: 1 m.id= None all()[0].id= 1
- which means to me that although m is saved to db, primary key is not set in m.pk after m.save().
If you look into newsgroups thread above, it seems that MySQLdb returns pk properly.
Change History (5)
comment:1 by , 16 years ago
| Triage Stage: | Unreviewed → Accepted |
|---|
comment:2 by , 15 years ago
| Severity: | → Normal |
|---|---|
| Type: | → Bug |
comment:3 by , 14 years ago
| UI/UX: | unset |
|---|
comment:5 by , 10 years ago
| Resolution: | → wontfix |
|---|---|
| Status: | new → closed |
As of #23871, Django no longer promotes warnings to exceptions, so I think this issue is obsolete.
Note:
See TracTickets
for help on using tickets.
Change UI/UX from NULL to False.