summaryrefslogtreecommitdiff
path: root/factory/containers.py
diff options
context:
space:
mode:
Diffstat (limited to 'factory/containers.py')
-rw-r--r--factory/containers.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/factory/containers.py b/factory/containers.py
index 9f480cc..946fbd3 100644
--- a/factory/containers.py
+++ b/factory/containers.py
@@ -242,7 +242,13 @@ class AttributeBuilder(object):
self.factory = factory
self._containers = extra.pop('__containers', None)
self._attrs = factory.declarations(extra)
- self._subfields = utils.multi_extract_dict(self._attrs.keys(), self._attrs)
+
+ attrs_with_subfields = [k for k, v in self._attrs.items() if self.has_subfields(v)]
+
+ self._subfields = utils.multi_extract_dict(attrs_with_subfields, self._attrs)
+
+ def has_subfields(self, value):
+ return isinstance(value, declarations.SubFactory)
def build(self, create):
"""Build a dictionary of attributes.