Django Model advance Foreignkey Relation

У меня есть модель Django, которая имеет отношения с моделью пользователя. Где пользователи назначаются на группы. особенно "Admin", "Teacher", "Student". Поэтому я хочу сделать связь по внешнему ключу таким образом, чтобы она показывала только тех пользователей, которые были назначены в группы учителей для модели Teacher_details, и аналогично для модели Student_Details. Я создал модели Teacher_Details , Student_Details и установил связь внешнего ключа с моделью User. Но проблема в том, что она показывает всех пользователей, когда я заполняю Student_Details или Teacher_Details. Надеюсь, вы поняли мою проблему. Я надеюсь на положительный ответ.

Код выглядит следующим образом:

    class Student_Details(models.Model):
        user = models.OneToOneField(User,on_delete=models.CASCADE)
        image = models.ImageField(default='none', upload_to='img/')
        details_updated = models.DateTimeField(auto_now_add=True)
        address = models.CharField(max_length=150)
        admission_date = models.DateField()
        previous_college = models.CharField(max_length=150)
        course_enrolled = models.ForeignKey(ModelUniversity,on_delete=models.CASCADE)
        semester = models.CharField(max_length=20,choices=semester,default=None)
            
        def __str__(self):
            return self.user.first_name
    class Teacher_Details(models.Model):
        address = models.CharField(max_length=150)
        image = models.ImageField(default='none', upload_to='img/')
        details_updated = models.DateTimeField(auto_now_add=True)
        subject_taught = models.ManyToManyField(to='Student.stu_subject')
        user = models.OneToOneField(User,on_delete=models.CASCADE)
            
        def __str__(self):
            return self.user.first_name
    
        def subject_teacher_teaches(self):
            return [str(s) for s in self.subject_taught.all()]

Поскольку обе модели имеют ссылку на user_id, вы можете использовать эту информацию для поиска обеих моделей на основе запроса и извлечения необходимого экземпляра. Сделайте представление, которое проверяет user_id в запросе, ищет в обеих моделях и возвращает результаты (я предполагаю, что пользователь не может принадлежать к обеим группам...)

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