Преглед изворни кода

Fixes #20499: Documented ObjectListView quick search feature for plugins (#20500)

Jo пре 3 месеци
родитељ
комит
56d9146323
1 измењених фајлова са 21 додато и 0 уклоњено
  1. 21 0
      docs/plugins/development/filtersets.md

+ 21 - 0
docs/plugins/development/filtersets.md

@@ -55,6 +55,27 @@ class MyModelViewSet(...):
     filterset_class = filtersets.MyModelFilterSet
 ```
 
+### Implementing Quick Search
+
+The `ObjectListView` has a field called Quick Search. For Quick Search to work the corresponding FilterSet has to override the `search` method that is implemented in `NetBoxModelFilterSet`. This function takes a queryset and can perform arbitrary operations on it and return it. A common use-case is to search for the given search value in multiple fields:
+
+```python
+from django.db.models import Q
+from netbox.filtersets import NetBoxModelFilterSet
+
+class MyFilterSet(NetBoxModelFilterSet):
+    ...
+    def search(self, queryset, name, value):
+        if not value.strip():
+            return queryset
+        return queryset.filter(
+            Q(name__icontains=value) |
+            Q(description__icontains=value)
+        )
+```
+
+The `search` method is also used by the `q` filter in `NetBoxModelFilterSet` which in turn is used by the Search field in the filters tab.
+
 ## Filter Classes
 
 ### TagFilter