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
f1c5db1c
Commit
f1c5db1c
authored
Nov 19, 2013
by
Serge S. Koval
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed #376. Honor 'uselist' flag when generating relations even if relation type is ONETOMANY'
parent
3b266bf6
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
37 additions
and
6 deletions
+37
-6
form.py
flask_admin/contrib/sqla/form.py
+4
-6
test_basic.py
flask_admin/tests/sqlamodel/test_basic.py
+33
-0
No files found.
flask_admin/contrib/sqla/form.py
View file @
f1c5db1c
...
...
@@ -84,12 +84,10 @@ class AdminModelConverter(ModelConverterBase):
kwargs
[
'query_factory'
]
=
lambda
:
self
.
session
.
query
(
remote_model
)
if
'widget'
not
in
kwargs
:
if
prop
.
direction
.
name
==
'MANYTOONE'
:
kwargs
[
'widget'
]
=
form
.
Select2Widget
()
elif
prop
.
direction
.
name
==
'ONETOMANY'
:
kwargs
[
'widget'
]
=
form
.
Select2Widget
(
multiple
=
True
)
elif
prop
.
direction
.
name
==
'MANYTOMANY'
:
if
multiple
:
kwargs
[
'widget'
]
=
form
.
Select2Widget
(
multiple
=
True
)
else
:
kwargs
[
'widget'
]
=
form
.
Select2Widget
()
if
multiple
:
return
QuerySelectMultipleField
(
**
kwargs
)
...
...
@@ -122,7 +120,7 @@ class AdminModelConverter(ModelConverterBase):
if
override
:
return
override
(
**
kwargs
)
if
prop
.
direction
.
name
==
'MANYTOONE'
:
if
prop
.
direction
.
name
==
'MANYTOONE'
or
not
prop
.
uselist
:
return
self
.
_model_select_field
(
prop
,
False
,
remote_model
,
**
kwargs
)
elif
prop
.
direction
.
name
==
'ONETOMANY'
:
return
self
.
_model_select_field
(
prop
,
True
,
remote_model
,
**
kwargs
)
...
...
flask_admin/tests/sqlamodel/test_basic.py
View file @
f1c5db1c
...
...
@@ -532,6 +532,39 @@ def test_form_override():
eq_
(
view2
.
_create_form_class
.
test
.
field_class
,
fields
.
FileField
)
def
test_form_onetoone
():
app
,
db
,
admin
=
setup
()
class
Model1
(
db
.
Model
):
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
)
test
=
db
.
Column
(
db
.
String
)
class
Model2
(
db
.
Model
):
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
)
model1_id
=
db
.
Column
(
db
.
Integer
,
db
.
ForeignKey
(
Model1
.
id
))
model1
=
db
.
relationship
(
Model1
,
backref
=
db
.
backref
(
'model2'
,
uselist
=
False
))
db
.
create_all
()
view1
=
CustomModelView
(
Model1
,
db
.
session
,
endpoint
=
'view1'
)
view2
=
CustomModelView
(
Model2
,
db
.
session
,
endpoint
=
'view2'
)
admin
.
add_view
(
view1
)
admin
.
add_view
(
view2
)
model1
=
Model1
(
test
=
'test'
)
model2
=
Model2
(
model1
=
model1
)
db
.
session
.
add
(
model1
)
db
.
session
.
add
(
model2
)
db
.
session
.
commit
()
eq_
(
model1
.
model2
,
model2
)
eq_
(
model2
.
model1
,
model1
)
eq_
(
view1
.
_create_form_class
.
model2
.
kwargs
[
'widget'
]
.
multiple
,
False
)
eq_
(
view2
.
_create_form_class
.
model1
.
kwargs
[
'widget'
]
.
multiple
,
False
)
def
test_relations
():
# TODO: test relations
pass
...
...
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