Home > other >  how to filter foreign key
how to filter foreign key

Time:06-14

Hello their i have two table one is StudentData and other is Enrollment. Below are the codes for them

class StudentData(models.Model):
    user                = models.OneToOneField(CustomUser,on_delete=models.CASCADE)
    student_name        = models.CharField(max_length=30, default=1)
    department          = models.ForeignKey(Department,on_delete=models.CASCADE)
    program             = models.ForeignKey(Program, on_delete=models.CASCADE)

    is_admitted         = models.BooleanField(default=True)
    is_closed         = models.BooleanField(default=False)
class Enrollment(models.Model):
    student = models.ForeignKey(StudentData,on_delete=models.CASCADE)
    faculty = models.ForeignKey(TeachingSemester,on_delete=models.CASCADE)

When student logins , the website shows data according to logged user , below is the code

log_user = request.user
student_information = StudentData.objects.filter(user=log_user)

What can i do so that the Enrollment of only logged in is shown on the page?

CodePudding user response:

To filter by student:

log_user = request.user
student_information = StudentData.objects.filter(user=log_user)

enrollments = Enrollment.objects.filter(student=student_information)

If you prefer to get Enrollments by user you can also do:

log_user = request.user
enrollments = Enrollment.objects.filter(student__user=log_user)
  • Related