通过另一个mod在manytomy关系中使用Django内联表单集过滤器

2024-09-23 22:32:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个模型:班级和学生,它们通过一个入学模型有一个多对多的关系。在

class Student(models.Model):
    name = models.CharField(max_length=100)
    code = models.CharField(max_length=10)

class SchoolClass(models.Model):
    code = models.CharField(max_length=100)
    cycle = models.ForeignKey(Cycle)
    students = models.ManyToManyField(Student,through='Enrolment')

class Enrolment(models.Model):
    student = models.ForeignKey(Student)
    school_class = models.ForeignKey(SchoolClass)

SchoolClass模型有一个场循环(即班级运行的年+学期)。当我在管理员中查看学生时,我希望看到学生只在给定周期(例如当前周期)注册的课程

我以前在注册模型中有过“周期”字段,下面的操作很好:

^{pr2}$

但是,我已经将循环移到了SchoolClass模型中,现在无法解决如何将过滤器应用到下一个模型中。在


Tags: 模型modelmodelscodelengthstudent学生max
1条回答
网友
1楼 · 发布于 2024-09-23 22:32:11

除非我忽略了某些内容,否则可以使用studentenrollmentsinline上的queryset方法来完成此操作:

def queryset(self, request):
    current = Cycle.objects.latest() # or whatever to get the current cycle
    qs = super(StudentEnrolmentsInline, self).queryset(request)
    return qs.filter(school_class__cycle=current)

相关问题 更多 >