Appeal первой попавшейся академической группой по данному тарифу, но почему-то дает ошибку (все описано по ссылке)
https://pastebin.com/Y0jJyvew
я как-то неверно понимаю, как работает OuterRef?
Что-то тут не правильно. аннотате это только одно поле, я тут как я понимаю хочется целый объект?
Это просто фильтр), типо у меня уже на этапе фильтрации фигня какая-то (
Так какой нужен конечный итог, нужел полный объект AcademicGroup или его какое-то одно поле?
Ну, хотя бы id
Такое будет работать? def annotate_student_academic_group(self): self.annotate( academic_group=models.Subquery( AcademicGroup.objects.filter( Q(students=OuterRef('student')) | Q(tariff_id=OuterRef('tariff')) ).values('id')[:1] ) )
увы) students - это М2М поле и оказывается из-за этого мы уже берем поля из AcademicGroup мне предложили сделать OuterRef(OuterRef('student')) но чет тоже не робит
А можно полностью учавствующие модели посмотреть как выглядят?
решил пока отложить задачу) Но там у AcademicGroup: students(M2M), tariff(FK) Appeal: student(FK) , tariff(FK)
спасибо, решил попробовать, и если просто outer обернуть в Q() то все норм)
Обсуждают сегодня