Django/Ajax/Post/ Как отправить данные из одной таблицы в другую таблицу

У меня есть две таблицы, Exercises и Workouts. Модели Django приведены ниже:

    name = models.CharField(max_length=200)
    exercises = models.ManyToManyField(Exercise, null=True)
    description = models.TextField(max_length=3000, default=None, blank=True, null=True)
    goals = models.TextField(max_length=3000, default=None, blank=True, null=True)
    workout_time = models.CharField(max_length=200, default=None, blank=True, null=True)
    difficulty = models.CharField(max_length=200, default=None, blank=True, null=True)    
    workout_rating = models.PositiveIntegerField(default=None, blank=True, null=True)
    notes = models.TextField(max_length=5000, blank=True, null=True)
    def __str__(self):
        return self.name

HTML форма для тренировок:

           <forms id="workout_form" method='POST'>
                    {{form|crispy}}

                    <div class="row">
                        <div class="text-center pt-4">
                            <button type="button" class="btn btn-primary" id="create_workout">
                               Create
                              </button>
                        </div>
                    </div>
                </forms>

Над моими формами у меня уже есть список упражнений, которые я хочу добавить, но эта форма дает мне список всех моих упражнений - что мне не нужно.

Используя Ajax, я хочу отправить эти данные в Django для добавления в мою базу данных. Я застрял на том, как добавить упражнения.

my views.py:

def workout_builder_details(request):
    form = WorkoutForm(request.POST or None, request.FILES or None)
    data = []
    if request.is_ajax():
        if form.is_valid():
           form.save()
           data['name'] = form.cleaned_data.get('name')
           data['status'] = 'ok'
           return JsonResponse(data)

    context = {
        'form': form,
    }
    return render(request, 'application/workout_builder_details.html', context)

forms.py

class WorkoutForm(forms.ModelForm):

    class Meta:
        model = Workout
        fields = ( 'name', 'exercises', 'description', 'goals', 'workout_time', 'difficulty')

Как я могу сохранить данные, с упражнениями, которые я уже выбрал, используя ajax? Стоит ли мне вообще использовать ajax?

Вернуться на верх