Django: Формсеты не проходят валидацию из-за отсутствия данных

Я использую пакет django-formset-js (https://pypi.org/project/django-formset-js-improved/) для создания динамического набора форм. В нем задействованы три модели. Модель меню, которая имеет название и краткое описание. С моделью меню связаны несколько курсов. Они должны присоединяться динамически, так как количество курсов может меняться. При размещении запроса, на сайте, набор форм, не валидируется.

Я пытаюсь отладить код уже несколько дней и не могу найти ответ. request.POST возвращает значения.

request.POST

<QueryDict: {'csrfmiddlewaretoken': ['1kdujphIO3iawZZJuqSTYSds4vGT8er88s1GDpteNhAy20gTRdNRUTefXPSI
3Kjz'], 'menu_name': ['Mein zweites Menu'], 'menu_description': ['asfasdg'], 'status': ['a'], 'form-TOTAL_FORMS': ['2'], 'form-INITIAL_FORMS': ['1'], 'form-MIN_NUM_FORMS': ['0'], 'form-MAX_NUM_FORMS': ['1000'], 'form-1-course_name': ['B
igger'], 'form-1-course_description': ['asdfasdfasdfasdfasdf']}>  

Но когда я печатаю course_formset.clean_data в консоль, он показывает пустоту и dict, а также жалуется, что набор форм не валидируется из-за отсутствия данных. далее ниже вы найдете model.py, form.py и html код.

Пожалуйста, помогите мне. Ты - моя единственная надежда

html

model.py

class Course(models.Model):
    # Individual name of a course (i.e. "Natschis Spezial Fondue")
    creator = models.ForeignKey(User, related_name='creator_id_course', on_delete=models.PROTECT)

    course_name = models.CharField(max_length=100)
    course_description = models.CharField(max_length=1000)
    course_price = models.DecimalField(max_digits=7, decimal_places=2, null=True)
    course_tags = models.ManyToManyField(CourseTag)

    private = models.BooleanField(default=False, verbose_name=_('private item'))
    active = models.BooleanField(default=True)
    deleted = models.BooleanField(default=False)

    objects = CourseManager()

    def __str__(self):
        return self.course_name

forms.py

class CourseForm(forms.ModelForm):

    class Meta:
        model = Course
        fields = ['course_name', 'course_description']

    class Media(object):
        # todo: can this be deleted? used for
        js = formset_media_js + (
            # Other form media here
        )


CourseFormset = modelformset_factory(Course,
                                     form=CourseForm,
                                     extra=0)

view.py def create_menu_with_courses(request): context = {}

    # initializing forms
    menu_form = MenuCreationForm(user, request.POST or None)
    course_formset = CourseFormset(request.POST or None)
    
    if request.method == 'POST':
        current_user = request.user
    
        if menu_form.
            menu = menu_form.save(commit=False)
            menu.creator = current_user
            menu.save()

            if course_formset.is_valid():
                for position, course_form in enumerate(course_formset):
                    course = course_form.save(commit=False)
                    course.creator = request.user
                    course.save()
Вернуться на верх