作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在我的 django_filters 中创建一个 OR 过滤器。
所有过滤器都完美,除了我的产品名称。
我有一个搜索框,需要在 name_nl、name_en 和 name_fr 列中搜索产品名称。
如何使用 Django_filter 创建或过滤器?
class ProductFilter(django_filters.FilterSet):
status = django_filters.CharFilter(name='productvariant__status_id', lookup_type='exact')
productname = django_filters.CharFilter(name='name_nl', lookup_type='icontains')
class Meta:
model = Product
fields = {
'productname': ['icontains'],
'status': ['exact']
}
最佳答案
你可以这样做。
import django_filters
from django.db.models import Q
from app.models import User
class UserFilter(django_filters.FilterSet):
q = django_filters.MethodFilter()
class Meta:
model = User
fields = []
def filter_q(self, queryset, value):
return queryset.filter(
Q(last_name__icontains=value) | Q(first_name__icontains=value) | Q(email__icontains=value)
)
from django_filters.views import FilterView
from .filters import UserFilter
class AgentListView(ClassRequiredMixin, FilterView):
filterset_class = UserFilter
关于django - 使用 django_filters 创建 OR 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28701202/
我是一名优秀的程序员,十分优秀!