Родительская форма не получает значения от дочерней формы во время инициализации дочернего объекта в Django

Я создал базовую форму в django.

class basicform(forms.Form):
    br = ((None,' '),('CSE','CSE'),('ECE','ECE'),('IT','IT'))
    se = ((None,' '),('M','Male'),('F','Female'),('O','Others'))
    secx = ((None,' '),('A','A'),('B','B'),('C','C'),('D','D'))
    roll_no = forms.CharField(required=False,label='Roll No:')
    name = forms.CharField(required=False,label='Name:')
    sex = forms.ChoiceField(required=False,choices=se,label='Gender:')
    branch = forms.ChoiceField(required=False,choices=br,label='Branch:')
    sec = forms.ChoiceField(required=False,choices=secx,label='Section:')

я сделал другую форму

class marks(basicform):
    s11 = forms.DecimalField(max_value=100,min_value=0)
    s12 = forms.DecimalField(max_value=100,min_value=0)
    s13 = forms.DecimalField(max_value=100,min_value=0)
    ......
        def __init__(self,*args,**kwargs):
        super(marks,self).__init__(*args,**kwargs)
        self.fields['name'].disabled = True
        self.fields['roll_no'].disabled = True
        self.fields['sex'].disabled = True
        self.fields['branch'].disabled = True
        self.fields['sec'].disabled = True

проблема в том, что я беру данные из базовой формы, и хочу, чтобы эти данные были присвоены дочерней форме (т.е. объекту marks)

mark = marks(data = request.POST)

вот что я пытаюсь сделать. имейте в виду, что данные поста берутся из базового класса (т.е. basicform), я предполагаю, что параметр 'data' будет передан в суперкласс и, следовательно, значения будут присвоены, но это не так.

что я делаю не так?

def create(request):
    global form
    if request.method == 'POST': 
                
        form = basicform(data = request.POST)        
        if form.is_valid():            
            mark = marks(data = request.POST)
            mark.full_clean()
            print(form.cleaned_data)
            print(mark.cleaned_data)

это выдержка из моего представления, здесь операторы печати предназначены для отладки и, как я уже говорил, переменная 'form' имеет значения, а переменная 'mark' - нет.

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