Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
flask-admin
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Python-Dev
flask-admin
Commits
5d7e5100
Commit
5d7e5100
authored
May 07, 2014
by
Serge S. Koval
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed #524. Exception formatting callback and handle SQLa IntegrityErrors even in debug mode
parent
56f32cb3
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
28 additions
and
12 deletions
+28
-12
view.py
flask_admin/contrib/mongoengine/view.py
+4
-4
view.py
flask_admin/contrib/peewee/view.py
+4
-4
view.py
flask_admin/contrib/sqla/view.py
+13
-4
base.py
flask_admin/model/base.py
+7
-0
No files found.
flask_admin/contrib/mongoengine/view.py
View file @
5d7e5100
...
@@ -492,7 +492,7 @@ class ModelView(BaseModelView):
...
@@ -492,7 +492,7 @@ class ModelView(BaseModelView):
self
.
_on_model_change
(
form
,
model
,
True
)
self
.
_on_model_change
(
form
,
model
,
True
)
model
.
save
()
model
.
save
()
except
Exception
as
ex
:
except
Exception
as
ex
:
if
self
.
_debug
:
if
not
self
.
handle_view_exception
(
ex
)
:
raise
raise
flash
(
gettext
(
'Failed to create model.
%(error)
s'
,
flash
(
gettext
(
'Failed to create model.
%(error)
s'
,
...
@@ -519,7 +519,7 @@ class ModelView(BaseModelView):
...
@@ -519,7 +519,7 @@ class ModelView(BaseModelView):
self
.
_on_model_change
(
form
,
model
,
False
)
self
.
_on_model_change
(
form
,
model
,
False
)
model
.
save
()
model
.
save
()
except
Exception
as
ex
:
except
Exception
as
ex
:
if
self
.
_debug
:
if
not
self
.
handle_view_exception
(
ex
)
:
raise
raise
flash
(
gettext
(
'Failed to update model.
%(error)
s'
,
flash
(
gettext
(
'Failed to update model.
%(error)
s'
,
...
@@ -544,7 +544,7 @@ class ModelView(BaseModelView):
...
@@ -544,7 +544,7 @@ class ModelView(BaseModelView):
model
.
delete
()
model
.
delete
()
return
True
return
True
except
Exception
as
ex
:
except
Exception
as
ex
:
if
self
.
_debug
:
if
not
self
.
handle_view_exception
(
ex
)
:
raise
raise
flash
(
gettext
(
'Failed to delete model.
%(error)
s'
,
flash
(
gettext
(
'Failed to delete model.
%(error)
s'
,
...
@@ -599,7 +599,7 @@ class ModelView(BaseModelView):
...
@@ -599,7 +599,7 @@ class ModelView(BaseModelView):
count
,
count
,
count
=
count
))
count
=
count
))
except
Exception
as
ex
:
except
Exception
as
ex
:
if
self
.
_debug
:
if
not
self
.
handle_view_exception
(
ex
)
:
raise
raise
flash
(
gettext
(
'Failed to delete models.
%(error)
s'
,
error
=
str
(
ex
)),
flash
(
gettext
(
'Failed to delete models.
%(error)
s'
,
error
=
str
(
ex
)),
...
...
flask_admin/contrib/peewee/view.py
View file @
5d7e5100
...
@@ -349,7 +349,7 @@ class ModelView(BaseModelView):
...
@@ -349,7 +349,7 @@ class ModelView(BaseModelView):
# For peewee have to save inline forms after model was saved
# For peewee have to save inline forms after model was saved
save_inline
(
form
,
model
)
save_inline
(
form
,
model
)
except
Exception
as
ex
:
except
Exception
as
ex
:
if
self
.
_debug
:
if
not
self
.
handle_view_exception
(
ex
)
:
raise
raise
flash
(
gettext
(
'Failed to create model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
flash
(
gettext
(
'Failed to create model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
...
@@ -369,7 +369,7 @@ class ModelView(BaseModelView):
...
@@ -369,7 +369,7 @@ class ModelView(BaseModelView):
# For peewee have to save inline forms after model was saved
# For peewee have to save inline forms after model was saved
save_inline
(
form
,
model
)
save_inline
(
form
,
model
)
except
Exception
as
ex
:
except
Exception
as
ex
:
if
self
.
_debug
:
if
not
self
.
handle_view_exception
(
ex
)
:
raise
raise
flash
(
gettext
(
'Failed to update model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
flash
(
gettext
(
'Failed to update model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
...
@@ -386,7 +386,7 @@ class ModelView(BaseModelView):
...
@@ -386,7 +386,7 @@ class ModelView(BaseModelView):
model
.
delete_instance
(
recursive
=
True
)
model
.
delete_instance
(
recursive
=
True
)
return
True
return
True
except
Exception
as
ex
:
except
Exception
as
ex
:
if
self
.
_debug
:
if
not
self
.
handle_view_exception
(
ex
)
:
raise
raise
flash
(
gettext
(
'Failed to delete model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
flash
(
gettext
(
'Failed to delete model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
...
@@ -424,7 +424,7 @@ class ModelView(BaseModelView):
...
@@ -424,7 +424,7 @@ class ModelView(BaseModelView):
count
,
count
,
count
=
count
))
count
=
count
))
except
Exception
as
ex
:
except
Exception
as
ex
:
if
self
.
_debug
:
if
not
self
.
handle_view_exception
(
ex
)
:
raise
raise
flash
(
gettext
(
'Failed to delete models.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
flash
(
gettext
(
'Failed to delete models.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
flask_admin/contrib/sqla/view.py
View file @
5d7e5100
...
@@ -4,6 +4,7 @@ from sqlalchemy.orm.attributes import InstrumentedAttribute
...
@@ -4,6 +4,7 @@ from sqlalchemy.orm.attributes import InstrumentedAttribute
from
sqlalchemy.orm
import
joinedload
from
sqlalchemy.orm
import
joinedload
from
sqlalchemy.sql.expression
import
desc
from
sqlalchemy.sql.expression
import
desc
from
sqlalchemy
import
Column
,
Boolean
,
func
,
or_
from
sqlalchemy
import
Column
,
Boolean
,
func
,
or_
from
sqlalchemy.exc
import
IntegrityError
from
flask
import
flash
from
flask
import
flash
...
@@ -784,6 +785,14 @@ class ModelView(BaseModelView):
...
@@ -784,6 +785,14 @@ class ModelView(BaseModelView):
"""
"""
return
self
.
session
.
query
(
self
.
model
)
.
get
(
id
)
return
self
.
session
.
query
(
self
.
model
)
.
get
(
id
)
# Error handler
def
handle_view_exception
(
self
,
exc
):
if
isinstance
(
exc
,
IntegrityError
):
flash
(
gettext
(
'Integrity error.
%(message)
s'
,
message
=
exc
.
message
),
'error'
)
return
True
return
super
(
BaseModelView
,
self
)
.
handle_view_exception
(
exc
)
# Model handlers
# Model handlers
def
create_model
(
self
,
form
):
def
create_model
(
self
,
form
):
"""
"""
...
@@ -799,7 +808,7 @@ class ModelView(BaseModelView):
...
@@ -799,7 +808,7 @@ class ModelView(BaseModelView):
self
.
_on_model_change
(
form
,
model
,
True
)
self
.
_on_model_change
(
form
,
model
,
True
)
self
.
session
.
commit
()
self
.
session
.
commit
()
except
Exception
as
ex
:
except
Exception
as
ex
:
if
self
.
_debug
:
if
not
self
.
handle_view_exception
(
ex
)
:
raise
raise
flash
(
gettext
(
'Failed to create model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
flash
(
gettext
(
'Failed to create model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
...
@@ -825,7 +834,7 @@ class ModelView(BaseModelView):
...
@@ -825,7 +834,7 @@ class ModelView(BaseModelView):
self
.
_on_model_change
(
form
,
model
,
False
)
self
.
_on_model_change
(
form
,
model
,
False
)
self
.
session
.
commit
()
self
.
session
.
commit
()
except
Exception
as
ex
:
except
Exception
as
ex
:
if
self
.
_debug
:
if
not
self
.
handle_view_exception
(
ex
)
:
raise
raise
flash
(
gettext
(
'Failed to update model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
flash
(
gettext
(
'Failed to update model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
...
@@ -852,7 +861,7 @@ class ModelView(BaseModelView):
...
@@ -852,7 +861,7 @@ class ModelView(BaseModelView):
self
.
session
.
commit
()
self
.
session
.
commit
()
return
True
return
True
except
Exception
as
ex
:
except
Exception
as
ex
:
if
self
.
_debug
:
if
not
self
.
handle_view_exception
(
ex
)
:
raise
raise
flash
(
gettext
(
'Failed to delete model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
flash
(
gettext
(
'Failed to delete model.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
...
@@ -892,7 +901,7 @@ class ModelView(BaseModelView):
...
@@ -892,7 +901,7 @@ class ModelView(BaseModelView):
count
,
count
,
count
=
count
))
count
=
count
))
except
Exception
as
ex
:
except
Exception
as
ex
:
if
self
.
_debug
:
if
not
self
.
handle_view_exception
(
ex
)
:
raise
raise
flash
(
gettext
(
'Failed to delete models.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
flash
(
gettext
(
'Failed to delete models.
%(error)
s'
,
error
=
str
(
ex
)),
'error'
)
flask_admin/model/base.py
View file @
5d7e5100
...
@@ -878,6 +878,13 @@ class BaseModelView(BaseView, ActionsMixin):
...
@@ -878,6 +878,13 @@ class BaseModelView(BaseView, ActionsMixin):
"""
"""
raise
NotImplemented
(
'Please implement get_one method'
)
raise
NotImplemented
(
'Please implement get_one method'
)
# Exception handler
def
handle_view_exception
(
self
,
exc
):
if
self
.
_debug
:
return
False
return
True
# Model event handlers
# Model event handlers
def
on_model_change
(
self
,
form
,
model
,
is_created
):
def
on_model_change
(
self
,
form
,
model
,
is_created
):
"""
"""
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment