Модельное ограничение на проверку существующей связи между двумя полями

Я пишу приложение Django и хочу, чтобы Пользователи могли просматривать Курсы.

Пользователи должны выбрать Профессора, которого они рецензируют, при создании Рецензии, потому что несколько профессоров могут преподавать этот единственный курс.

Я создал таблицу Taught, которая хранит отношения между Professors и Courses.

Как сделать так, чтобы при добавлении рецензии мне показывались в выпадающем списке профессоров только те профессора, которые имеют отношение к этому курсу (только те профессора, которые преподавали этот курс).

class Professor(models.Model):
    name = models.CharField()
    
class Course(models.Model):
    name = models.CharField(max_length=200)
    professor = models.ManyToManyField(Professor, through="Teaches", related_name='taughtBy')

class Teaches(models.Model):
    course = models.ForeignKey(Course,on_delete=models.CASCADE,related_name="reviews_course")
    professor=models.ForeignKey(Professor,on_delete=models.CASCADE,related_name="reviews_professor") 


class Review(models.Model):
    author = models.ForeignKey(User,on_delete=models.CASCADE,related_name="is_author")
    course = models.ForeignKey(Course,on_delete=models.CASCADE,related_name="reviews_course")
    professor = <<<<How do I enforce that professor and course have to have an existing relationship in Teaches?>>>>

Проверить операцию в отношениях m2m.

course_object.professors.all()
#or
professor_object.course_set.all()

EDIT

from django import forms
class ReviewForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['professor'] = #insert the above data
Вернуться на верх