如何自定义django管理员搜索结果在很多领域
问题描述:
我试图过滤显示的列表,当我在许多领域使用lupe(图像波纹管)。 也许文本搜索也会很有趣。如何自定义django管理员搜索结果在很多领域
任何帮助?
下面的代码:
class PresentialModuleCourseInline(NestedStackedInline):
"""Module Course Presential Stacked Inline"""
model = Course.modules.through
raw_id_fields = ('module_course',)
extra = 1
def get_queryset(self, request):
return self.model.objects.filter(
module_course__type_course=ModuleCourse.PRESENTIAL) # Doesn't work
答
要在ForeignKeyRawIdWidget
(LUPE)过滤器,你需要添加一个limit_choices_to小部件,将其添加查询参数在弹出的页面过滤像?type_course=online
样品:
class PresentialModuleCourseInline(NestedStackedInline):
"""Module Course Presential Stacked Inline"""
model = Course.modules.through
extra = 1
raw_id_fields = ('module_course',)
def get_formset(self, request, obj=None, **kwargs):
form = super().get_formset(request, obj, **kwargs)
field = form.form.base_fields['module_course']
field.widget.rel.limit_choices_to =\
{'type_course': ModuleCourse.PRESENTIAL}
return form
答
self.model
不是QuerySet
或模型,直接使用模型:
class PresentialModuleCourseInline(NestedStackedInline):
model = Course.modules.through
raw_id_fields = ('module_course',)
extra = 1
def get_queryset(self, request):
return Course.objects.filter(module_course__type_course=ModuleCourse.PRESENTIAL)
搜索设置search_fields
为您CourseAdmin
:
class CourseAdmin(admin.ModelAdmin):
search_fields = ('title',) # your search fields here
哪有我在NestedStackedInline中使用它? –
它不依赖于'NestedStackedInline'。如果您为“课程”管理页面设置了“search_fields”,它也会显示在[此屏幕]上(https://i.stack.imgur.com/w3Sjn.png) –
你没事。唯一的限制是为此视图设置查询集,但对于筛选器和搜索,这也适用。谢谢! –