Model Formsets for 3-way relationships (Model->ManyToMany->ForeignKey)?

I’m sorry, I’m not following what your question or issue is at this point.

So taking a step back and starting from the basics as written in the docs:

Inline formsets is a small abstraction layer on top of model formsets. These simplify the case of working with related objects via a foreign key.

Now, keep in mind that a many-to-many relationship exists as the relationship between the two related models through a “join” table. This join table exists as a model with at least two fields - one foreign key to each of the two models being related.

In this case, you have:

class Recipe:
  ...

class RecipeFermentable:
  ...

and Django provides something like:

class Recipe_To_RecipeFermentable:  # Totally fabricated name
  recipe = ForeignKey(Recipe, ...)
  recipe_fermentable = ForeignKey(RecipeFermentable)

If nothing else then you have the basis for using a formset from Recipe to the join table, where the fields being rendered come from the relationship from that join table to RecipeFermentable.

So yes, it will work - you may just need to work with the formset at a deeper level.

I don’t know how close this may be, but you may find this thread helpful as well. It may give you some ideas.