class StudentsTeacher(admin.TabularInline):
form = StudentsTeacher
model = StudentsTeacher
class Teacher_Admin(admin.ModelAdmin):
inlines = (StudentsTeacher,)
我想在StudentsTeacher中添加一个带有过滤器的查询集,但它不起作用,内联始终全部显示。
答案 0 :(得分:0)
使用get_queryset()
方法,您可以覆盖查询集
class Teacher_Admin(admin.TabularInline):
def get_queryset(self, request):
qs = super(Teacher_Admin, self).get_queryset(request)
return qs.filter(<filtering>)
您可以在django docs
中详细了解相关信息答案 1 :(得分:0)
您还可以在表单集中为内联定义自定义查询集
class StudentTeacherFormset(BaseInlineFormSet):
self.queryset = StudentsTeacher.objects.filter(<your custom filter>)
class StudentsTeacher(admin.TabularInline):
form = StudentsTeacher
model = StudentsTeacher
formset = StudentTeacherFormset
class Teacher_Admin(admin.ModelAdmin):
inlines = (StudentsTeacher,)
Formset可用于为Django内联生成自定义查询集,而不用在父级admin中呈现子表的所有对象。
但是,如果有人找到解决方案,以便在Django内联中提供类似于列表过滤器的过滤器,请告诉我。