У меня есть форма для регистрации студента в базе данных. В форме вы выбираете курс для зачисления студента. Тем не менее, у нас есть более 200 курсов. Я не хочу, чтобы пользователь видел все это, и должен прокручивать выпадающее меню. Я хочу отфильтровать список курсов между двумя ниже и двумя над уровнем обучения, который пользователь вводит для нового ученика.
Я попробовал некоторые определения kwarg (сильно упрощенные / сокращенные) в форме. Я попробовал некоторые определения limit_choices_to в модели, но я просто не могу его получить. Я могу заставить его показывать только варианты, которые совпадают с жестко запрограммированным числом, но я не могу заставить его извлечь пользовательский ввод из формы и отфильтровать те курсы, которые не имеют отношения к делу.
models.py
class Course(models.Model):
Course_Teacher = models.ManyToManyField(Teacher, blank=False)
Course_Title = models.CharField(max_length=150, null=False)
class Student(models.Model):
Student_Last_Name = models.CharField(null=False, max_length=50)
Student_First_Name = models.CharField(null=False, max_length=50)
Course_Enrollment = models.ManyToManyField(Course, blank=True)
class Teacher(models.Model):
Teacher_Last_Name = models.CharField(max_length=50, null=False)
Teacher_First_Name = models.CharField(max_length=50, null=False)
class StudentModelForm(forms.ModelForm):
class Meta:
model = Student
fields =
['Student_Last_Name','Student_First_Name','Student_Grade',
'Course_Enrollment']
labels = {
'Student_Last_Name': 'Student Last Name',
'Student_First_Name': 'Student First Name',
'Student_Grade':'Student Enrollment Grade',
'Course_Enrollment': "Enroll Student ",
}
НА ОСНОВЕ ВХОДА ПОЛЬЗОВАТЕЛЯ в поле «Student_Grade» в StudentModelForm, я хотел бы, чтобы в поле «Course_Enrollment» автоматически отображались курсы только на двух уровнях обучения (два ниже и два выше) для оценки этого студента. Например, я не хочу, чтобы пользователю приходилось пролистывать сотни курсов детского сада для 9-го класса.
Заранее спасибо!