I'm trying to create a simple "recipe" form with a title and a list of ingredients, which allows a user to add additional ingredients to the recipe.
I'm struggling, however, to implement this in Django. Particularly how to associate a formset with a field in a form. I'm sure it's a simple solution and one that's been done many times, but I must be missing something. I've got a model called Recipe that has a 1:n relationship with Ingredient. That means, a Recipe can have many Ingredients, but an Ingredient can only belong to 1 Recipe. *models.py:* class Recipe(models.Model): title = models.CharField(blank=True, null=True, max_length=100) class Ingredient(models.Model): title = models.CharField(blank=True, null=True, max_length=1000) recipe = models.ForeignKey(Recipe) The next step would be to set up model forms using the above 2 Models, which I've done. *forms.py: * class IngredientForm(forms.ModelForm): class Meta: model = Ingredient class RecipeForm(forms.ModelForm): class Meta: model = Recipe I know I now need to use formset_factory in order to display a list of Ingredients. This is where I'm stuck. *views.py* from django.forms.formsets import formset_factory # This obviously just gives me a Recipe form recipe_form = RecipeForm(request.POST or None) # This gives me a list of Ingredient forms in a formset, which is what I want, but I would like it to be associated with a Recipe ingredient_formset = formset_factory(IngredientForm) The above 2 lines of code will give the IngredientForm and RecipeForm as two separate forms that I can send to the template. However, there must be a way to display the recipe_form so that it displays the ingredient_formset as a "field" of a recipe_form. Subsequently, the user should be able to add extra ingredients to the recipe. I've had a read of the django documentation and haven't been able to come across anything there. Is there a particular section of the django docs that I should be focusing my attention on to get me unstuck? Or is there another way I should be approaching this? -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at http://groups.google.com/group/django-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.