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?