Mic*_*ura 4 python django django-queryset django-filter
我想制作一个搜索过滤器,仅使用一个搜索字段,在具有多个条件的多个字段中进行搜索。我有这个filters.py 文件:
import django_filters
from .models import Product
class ProductFilter(django_filters.FilterSet):
q = django_filters.CharFilter(method='search_filter', label='Cerca')
class Meta:
model = Product
fields = ['q']
def search_filter(self, queryset, name, value):
return queryset.filter(name__icontains=value, sku__iexact=value)
Run Code Online (Sandbox Code Playgroud)
但return queryset.filter(name__icontains=value, sku__iexact=value)不起作用,return queryset.filter(Product(name__icontains=value) | Product(sku__iexact=value))
我该怎么办?
您可以使用Q对象\xc2\xa0 [Django-doc]进行过滤:
import django_filters\nfrom django.db.models import Q\nfrom .models import Product\n\nclass ProductFilter(django_filters.FilterSet):\n q = django_filters.CharFilter(method=\'search_filter\', label=\'Cerca\')\n\n class Meta:\n model = Product\n fields = [\'q\']\n\n def search_filter(self, queryset, name, value):\n return queryset.filter(Q(name__icontains=value) | Q(sku__iexact=value))Run Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3982 次 |
| 最近记录: |