Могу ли я использовать какой-либо метод для выбора конкретного внешнего ключа, как я использовал при использовании 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