我得到了两个通过 Django 中的 ForeignKey 相关的模型。(我正在使用 Django 1.3)
Class Person(models.Model):
# some fields here like name, gender, etc...
Class Course(models.Model):
# some fields here
contact = models.ForeignKey(Person, blank=True, null=True)
在课程的管理员更改列表视图中,我希望能够按 ForeignKey 联系人过滤课程。在 admin.py 我得到:
class CourseAdmin(admin.ModelAdmin):
list_filter = ('contact',)
这工作得很好。我可以按所有可用的联系人过滤课程。现在我想只显示那些实际上附加了课程的联系人。我在这里阅读了 SO 以通过创建自定义 FilterSpec 来实现 CustomFilters。我不知道这是否是正确的方向,因为我只需要进一步过滤用于显示联系人选择的查询集。
在外壳中,我通过以下方式获得所需的查询集:
contacts=Person.objects.filter(course__in=Course.objects.all()).distinct()
我已经读到您可以在 1.4 中轻松实现这一点,但我仍然受制于 1.3 有人可以指出我正确的方向吗?谢谢!