Attempt to add new inline-edited item in admin interface results in ProgrammingError ERROR: invalid input syntax for integer: "". Used to work in older SVN snapshot.
|Reported by:||mdkemp||Owned by:||adrian|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
Consider the following extremely-simple inline-edited relationship:
class Case(models.Model): name = models.CharField(maxlength=100) class Admin: pass class Label(models.Model): case = models.ForeignKey(Case, edit_inline=models.TABULAR) name = models.CharField(maxlength=100, core=True) class Admin: pass
In this case, if I try to add a new Label to a Case (while editing the Case via its admin interface view), I get the following error:
Exception Type: ProgrammingError Exception Value: ERROR: invalid input syntax for integer: "" SELECT 1 FROM "peopledb_label" WHERE "id"='' LIMIT 1
The following were the arguments from the HTTP POST operation when I clicked Save:
label.0.id '' name 'Case1' label.0.name 'TestLabel1'
It appears that when trying to determine if an old record should be updated rather than inserted into the database, an invalid query was built. I've encountered this problem now on three different django projects. This used to work in a version of django from a SVN snapshot around 12/15/2006, and does work if I revert my installed django to that version.
Change History (5)
comment:1 follow-up: ↓ 3 Changed 10 years ago by ramiro <rm0 _at_ gmx.net>
- Needs documentation unset
- Needs tests unset
- Patch needs improvement unset
comment:4 Changed 10 years ago by Michael Radziej <mir@…>
- Triage Stage changed from Unreviewed to Accepted