Как использовать стиль бутстрапа ModelFormset

У меня есть представление, которое использует formset factory, но я пытаюсь стилизовать отображаемую html-форму. Но обычные стили для форм не работают, и я не уверен, что мне нужно сделать, чтобы применить CSS-стили.

Мое мнение

def get_questionnaire(request, project_id, questionnaire_id):

    # Get the Response object for the parameters
    response = Response.objects.get(
        project_name_id=project_id, questionnaire_id=questionnaire_id
    )

    AnswerFormSet = modelformset_factory(Answer, fields=('answer',), extra=0)

    answer_queryset = Answer.objects.filter(response=response
    ).order_by('question__sequence'
    ).select_related('question')

    if request.method == 'POST':
        # to be completed
        pass
    else:
        # Get the list of questions for which no Answer exists
        new_answers = Question.objects.filter(
            questionnaire__response=response
        ).exclude(
            answer__response=response
        )

        # This is safe to execute every time. If all answers exist, nothing happens
        for new_answer in new_answers:
            Answer(question=new_answer, response=response).save()

        answer_formset = AnswerFormSet(queryset=answer_queryset)

    return render(request, 'pages/formset.html', {'formset': answer_formset})


на данный момент я просто пытаюсь стилизовать одно поле, применяя виджеты в forms.py. Но это не работает.

class answer_formset(ModelForm):
    class Meta:
        model = Answer
        fields = ('answer',)

        widgets = {
            'answer': forms.Select(attrs={'class': 'form-select'}),
        }

HTML

{{ formset.management_form }}
  {% for form in formset %}
  {{ form.id }} {{ form.instance.question.question }} 
  {{ form.answer }}
<br>
  {% endfor %}

Спасибо

Вам нужно указать фабрике, какой ModelForm использовать:

AnswerFormSet = modelformset_factory(Answer, form=answer_formset, fields=('answer',), extra=0)

Из документации:

Вы можете передать аргумент формы, чтобы использовать его в качестве отправной точки для построения ModelForm.

дополнительная информация: https://docs.djangoproject.com/en/4.0/ref/forms/models/#modelform-factory

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