Есть модели
class MuscleGroup(models.Model): name = models.CharField(max_length=50) descr_text = models.TextField(') class Exercise(models.Model): name = models.CharField (max_length=50) muscle = models.ManyToManyField (MuscleGroup) descr_text = models.TextField (blank=True) class Training(models.Model): author_user = models.ForeignKey(User) train_date = models.DateField() title = models.CharField (max_length=50, blank=True) class Reps(models.Model): muscle_group = models.ForeignKey(MuscleGroup) training = models.ForeignKey(Training) exercise = models.ForeignKey(Exercise) work_count = models.IntegerField() work_weight = models.IntegerField()
есть views
@login_required @csrf_exempt def reps_add(request, training_id): user = request.user tr_list = Training.objects.filter(author_user=user) train = get_object_or_404 (tr_list, pk=training_id) RepsFormSet = inlineformset_factory(Training, Reps, extra=5) if request.method == 'POST': formset = RepsFormSet(request.POST, instance=train) if formset.is_valid(): formset.save() return HttpResponseRedirect (reverse(training_detail, args=(training_id,))) else: formset = RepsFormSet(instance=train) return render_to_response ('reps_add.html', {'formset':formset, 'user':user})
<form action='' method='POST'> {{ formset.management_form }} {% for form in formset %} {{ form.id }} {{ form.errors }} <table> <tr> <td> {{ form.muscle_group }} </td> <td> {{ form.exercise }} </td> <td> {{ form.work_count }} </td> <td> {{ form.work_weight }} </td> {% if formset.can_delete %} <td>Удалить :{{ form.DELETE }} </td> {% endif %} </tr> </table> {% endfor %} <input type = 'submit' value='Add' /> </form>