Files
Student-Management-System-I…/app/forms.py
T

45 lines
1.5 KiB
Python

from django import forms
from django.utils.translation import gettext_lazy as _
from app.models import Course, Marksheet, Subject
# class MarksheetForm(forms.ModelForm):
# class Meta:
# model = Marksheet
# fields = "__all__"
#
# def __init__(self, *args, **kwargs):
# super().__init__(*args, **kwargs)
#
# if self.instance.pk and self.instance.course:
# self.fields["subject"].queryset = Subject.objects.filter(
# course=self.instance.course,
# semester_or_year_number=self.instance.period_number,
# )
# # else:
# # self.fields["subject"].queryset = Subject.objects.none()
class SubjectForm(forms.ModelForm):
class Meta:
model = Subject
fields = ["name", "course", "semester_or_year_number", "teacher"]
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if "course" in self.data:
try:
course_id = int(self.data.get("course"))
course = Course.objects.get(pk=course_id)
self.fields["semester_or_year_number"].choices = [
(i, i) for i in range(1, course.duration + 1)
]
except (ValueError, Course.DoesNotExist):
pass
elif self.instance.pk:
course = self.instance.course
self.fields["semester_or_year_number"].choices = [
(i, i) for i in range(1, course.duration + 1)
]