Skip to content

Commit

Permalink
QuerySelectField.query allowing no results []
Browse files Browse the repository at this point in the history
There was a bug when deciding to use either query or query_factory in QuerySelectField. Queries that returned no value where silently ignored in favor of query_factory. This has been fixed. 

Affected classes:
QuerySelectField.
GroupedQuerySelectField
GroupedQuerySelectMultipleField

This solves issue kvesteri#135
  • Loading branch information
Carlos García Montoro authored Nov 29, 2018
1 parent 64fe8ec commit bf42ed8
Showing 1 changed file with 12 additions and 3 deletions.
15 changes: 12 additions & 3 deletions wtforms_alchemy/fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,10 @@ def _set_data(self, data):

def _get_object_list(self):
if self._object_list is None:
query = self.query or self.query_factory()
query = (
self.query if self.query is not None
else self.query_factory()
)
get_pk = self.get_pk
self._object_list = list(
(text_type(get_pk(obj)), obj) for obj in query
Expand Down Expand Up @@ -359,7 +362,10 @@ def __init__(
self._choices = None

def _get_object_list(self):
query = self.query or self.query_factory()
query = (
self.query if self.query is not None
else self.query_factory()
)
return list((six.text_type(self.get_pk(obj)), obj) for obj in query)

def _pre_process_object_list(self, object_list):
Expand Down Expand Up @@ -493,7 +499,10 @@ def __init__(
self._invalid_formdata = False

def _get_object_list(self):
query = self.query or self.query_factory()
query = (
self.query if self.query is not None
else self.query_factory()
)
return list((six.text_type(self.get_pk(obj)), obj) for obj in query)

def _pre_process_object_list(self, object_list):
Expand Down

0 comments on commit bf42ed8

Please sign in to comment.