Могу ли я использовать какой-либо метод для выбора конкретного внешнего ключа, как я использовал при использовании get в Django?

Могу ли я использовать какой-либо метод для выбора конкретного внешнего ключа, как я использовал при использовании get?

session = StudentReporter.objects.get(pk=pk).session_report.session.pk
session_report = StudentReporter.objects.get(pk=pk).session_report.pk
studentsession = StudentSessions.objects.filter(session=session).select_related('student', 'session', 'session__teacher', 'session__name', 'session__day')
# I tried this for loop but it returns a string not a model instance
student = tuple([(student.student,student.student) for student in studentsession])
self.fields['student'] = forms.ChoiceField(choices= student)

Я хочу, чтобы код был таким

session = StudentReporter.objects.get(pk=pk).session_report.session.pk
session_report = StudentReporter.objects.get(pk=pk).session_report.pk
# watch the change in the following lines
studentsession = StudentSessions.objects.filter(session=session).select_related('student', 'session', 'session__teacher', 'session__name', 'session__day').students
self.fields['student'] = forms.ChoiceField(choices= studentsession)

так как я могу использовать студентов в моделях Модель StudentSessions в models.py

class StudentSessions(models.Model):
    student = models.ForeignKey(Student, related_name='student_session', on_delete=models.CASCADE)
    session = models.ForeignKey(Session, related_name='student_session', on_delete=models.CASCADE)
    class Meta:
        unique_together = ['student', 'session']
    def __str__(self):
        return f'{self.student.name}, {self.session.teacher}, {self.session.time}, {self.session.name} '  # type: ignore

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