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
d9f09d1c
Commit
d9f09d1c
authored
Apr 05, 2012
by
Serge S. Koval
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactored form creation and added `form` option for ModelView. Fixes #8.
parent
ea80e70e
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
44 additions
and
2 deletions
+44
-2
TODO.txt
TODO.txt
+2
-0
base.py
flask_adminex/model/base.py
+29
-2
test_model.py
flask_adminex/tests/test_model.py
+13
-0
No files found.
TODO.txt
View file @
d9f09d1c
...
@@ -5,6 +5,8 @@
...
@@ -5,6 +5,8 @@
- Model Admin
- Model Admin
- Ability to sort by fields that are not visible?
- Ability to sort by fields that are not visible?
- List display callables
- List display callables
- Fields
- Verify how boolean field is rendered
- Search
- Search
- Rename init_search
- Rename init_search
- Filters
- Filters
...
...
flask_adminex/model/base.py
View file @
d9f09d1c
...
@@ -120,6 +120,19 @@ class BaseModelView(BaseView):
...
@@ -120,6 +120,19 @@ class BaseModelView(BaseView):
column_filters = ('user', 'email')
column_filters = ('user', 'email')
"""
"""
form
=
None
"""
Form class. Override if you want to use custom form for your model.
For example:
class MyForm(wtf.Form):
pass
class MyModelView(BaseModelView):
form = MyForm
"""
form_columns
=
None
form_columns
=
None
"""
"""
Collection of the model field names for the form. If set to `None` will
Collection of the model field names for the form. If set to `None` will
...
@@ -378,13 +391,27 @@ class BaseModelView(BaseView):
...
@@ -378,13 +391,27 @@ class BaseModelView(BaseView):
"""
"""
raise
NotImplemented
(
'Please implement scaffold_form method'
)
raise
NotImplemented
(
'Please implement scaffold_form method'
)
def
get_form
(
self
):
"""
Get form class.
If ``self.form`` is set, will return it and will call
``self.scaffold_form`` otherwise.
Override to implement customized behavior.
"""
if
self
.
form
is
not
None
:
return
self
.
form
return
self
.
scaffold_form
()
def
get_create_form
(
self
):
def
get_create_form
(
self
):
"""
"""
Create form class for model creation view.
Create form class for model creation view.
Override to implement customized behavior.
Override to implement customized behavior.
"""
"""
return
self
.
scaffold
_form
()
return
self
.
get
_form
()
def
get_edit_form
(
self
):
def
get_edit_form
(
self
):
"""
"""
...
@@ -392,7 +419,7 @@ class BaseModelView(BaseView):
...
@@ -392,7 +419,7 @@ class BaseModelView(BaseView):
Override to implement customized behavior.
Override to implement customized behavior.
"""
"""
return
self
.
scaffold
_form
()
return
self
.
get
_form
()
def
create_form
(
self
,
form
,
obj
=
None
):
def
create_form
(
self
,
form
,
obj
=
None
):
"""
"""
...
...
flask_adminex/tests/test_model.py
View file @
d9f09d1c
...
@@ -301,3 +301,16 @@ def test_form():
...
@@ -301,3 +301,16 @@ def test_form():
# TODO: excluded_form_columns
# TODO: excluded_form_columns
# TODO: form_args
# TODO: form_args
pass
pass
def
test_custom_form
():
app
,
admin
=
setup
()
class
TestForm
(
wtf
.
Form
):
pass
view
=
MockModelView
(
Model
,
form
=
TestForm
)
admin
.
add_view
(
view
)
eq_
(
view
.
_create_form_class
,
TestForm
)
eq_
(
view
.
_edit_form_class
,
TestForm
)
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