If I've understood what you're looking for there isn't a hugely simple way to do what you're describing in Wagtail. Though you could populate non-page models from other page-models in a slightly less accessible way e.g.
class SubgenreClass(ClusterableModel):
title = models.CharField(max_length=255, help_text="Be as esoteric as you'd like")
description = models.TextField(blank=True, help_text='A description of the sub-genre')
panels = [
FieldPanel('title'),
FieldPanel('description')
]
class SubGenreRelationship(Orderable, SubgenreClass):
subgenre_in_editor = ParentalKey('GenreClass', related_name='sub_genre_relationship')
class GenreClass(ClusterableModel):
title = models.CharField("The genre", max_length=254, help_text='The genre. Something high level e.g. pop, metal, punk etc')
slug = models.SlugField(
allow_unicode=True,
max_length=255,
)
genre_description = RichTextField(blank=True, help_text='A description of the genre')
panels = [
FieldPanel('title'),
FieldPanel('slug'),
FieldPanel('genre_description'),
InlinePanel('sub_genre_relationship', label="Subgenre", help_text="Note: this subgenres will populate the sub-genre model", min_num=1)
]
SubgenreClass is populated by GenreClass using the related name sub_genre_relationship.
This works fine to the extent that it allows a class to be populated if there's a one-to-many relationship (e.g. a single genre has lots of subgenres). It means you can access either the subgenre or genre model elsewhere in your application, but the subgenre model can't be made accessible through modeladmin without causing some confusion (because there's no way to define the relationship on the subgenre model back to the parent genre). That suited my use case for the project, and hopefully even if it doesn't suit yours will get you a little closer to find the solution. Would love to hear if you come up with something that gets closer to mimicking the Django admin UI for adding related content via a modal on the parent item.
cheers
edd