Opened 23 months ago
Last modified 23 months ago
#34376 closed Bug
Admin has no support for unique constraint fields (while using SQLite?) — at Version 1
Reported by: | Alex Urbanowicz | Owned by: | nobody |
---|---|---|---|
Component: | contrib.admin | Version: | 4.1 |
Severity: | Normal | Keywords: | sqlite unique admin |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
The context is an Admin based application - all database operations are done using Admin. The backend is SQLite.
One of the fields in the application is a field for an (unique) ip address:
ip = models.GenericIPAddressField(protocol='IPv4', unique=True)
When there's an attempt to enter duplicate IP address, the application crashes to a 500 error:
django.db.utils.IntegrityError: UNIQUE constraint failed: <table>.ip
Attempt at handling that error by catching the exception and emitting an message leads to another error:
django.db.transaction.TransactionManagementError: An error occurred in the current transaction. You can't execute queries until the end of the 'atomic' block.
I would expect that, since the ORM supports unique fields, there's some Admin UI to handle constraint errors in a similar way to validation errors, and not fall flat and give the user a 500 error.
s/append/attempt/