モデル自身にリクエストを行う必要があります:
class Course(models.Model):
owner = models.ForeignKey(User, related_name='course', limit_choices_to={'userprofile__status': 'teacher'})
class Assignment (models.Model):
course = models.ForeignKey(Course, related_name='assignment')
admins = models.ManyToManyField(User, blank=True, null=True, limit_choices_to={'userprofile__status': 'teacher'})
管理者には、所有者なしですべてのユーザー (教師をステータスとして含む) が含まれている必要があります。Q オブジェクトを試してみましたが、成功しませんでした...