如何自定义django管理员搜索结果在很多领域

如何自定义django管理员搜索结果在很多领域

问题描述:

我试图过滤显示的列表,当我在许多领域使用lupe(图像波纹管)。 也许文本搜索也会很有趣。如何自定义django管理员搜索结果在很多领域

任何帮助?

django lupe search result example django admin stacked inline example

下面的代码:

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 
+0

哪有我在NestedStackedInline中使用它? –

+0

它不依赖于'NestedStackedInline'。如果您为“课程”管理页面设置了“search_fields”,它也会显示在[此屏幕]上(https://i.stack.imgur.com/w3Sjn.png) –

+0

你没事。唯一的限制是为此视图设置查询集,但对于筛选器和搜索,这也适用。谢谢! –