Как создать несколько объектов с помощью django formset

Погуглив, мне удалось создать несколько объектов на одной странице с помощью набора форм в Django. Но я хочу добавить все поля из модели класса 'Supporting' в форму.

Ниже приведен код формы, которая принимает только поле 'hour'. Если я ввожу поля, кроме поля 'hour', один раз, я хочу, чтобы оно сохранялось как то же значение, когда добавляется поле hour.

Другими словами, я хочу, чтобы все поля были вводимыми и только поле 'hour' добавлялось по мере необходимости. Как мне добавить остальные поля? forms.py?

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

[models.py]

class Supporting(models.Model):
    date = models.DateTimeField(blank=True, null=True)
    student = models.ForeignKey(Student, on_delete=models.CASCADE, blank=False, null=True)
    kinds = models.CharField(max_length=50, choices=KINDS_CHOICES, blank=True, null=True)
    hour = models.CharField(max_length=2, blank=True, null=True)
    teacher = models.CharField(max_length=50, blank=True, null=True)
    comment = models.TextField(blank=True, null=True)

[forms.py]

from django import forms
from django.forms import modelformset_factory, ModelForm, DateTimeInput
from .models import Supporting

SupportingModelFormset = modelformset_factory(
    Supporting,
    fields=('hour',),
    extra=1,
    widgets={'hour': forms.TextInput(attrs={'class': 'form-control'}),
             'date': forms.DateTimeInput(format=('%Y-%m-%d %H:%M'), attrs={'autocomplete': 'off', 'type': 'datetime'}) }
    )

[views.py]

def add_supporting(request):
    if request.method == 'GET':
        formset = SupportingModelFormset(queryset=Supporting.objects.none())
    elif request.method == 'POST':
        formset = SupportingModelFormset(request.POST)
        if formset.is_valid():
            for form in formset:
                if form.cleaned_data.get('hour'):
                    form.save()
            return redirect('supporting')

    return render(request, 'supporting/add.html', {'formset': formset})

[add.html]

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