diff --git a/aleksis/core/mixins.py b/aleksis/core/mixins.py index a84c9611d858241b116c4c71c83770f1faafe035..17140aa00f53d531740c1054cc6f18eb0ccfe2f9 100644 --- a/aleksis/core/mixins.py +++ b/aleksis/core/mixins.py @@ -281,6 +281,7 @@ class ExtensibleModel(models.Model, metaclass=_ExtensibleModelBase): if ExtensibleModel not in field.related_model.__mro__: # Related model is not extensible and thus has no syncable fields continue + # Recurse into related model to get its fields as well for subfield in field.related_model.syncable_fields(): # generate virtual field names for proxy access @@ -309,6 +310,8 @@ class ExtensibleModel(models.Model, metaclass=_ExtensibleModelBase): elif field.editable and not field.auto_created: fields.append(field) + return fields + @classmethod def syncable_fields_choices(cls) -> Tuple[Tuple[str, str]]: """Collect all fields that can be synced on a model."""