Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在我的queryset上实现或运行_Python_Django_Django Forms_Django Views - Fatal编程技术网

Python 如何在我的queryset上实现或运行

Python 如何在我的queryset上实现或运行,python,django,django-forms,django-views,Python,Django,Django Forms,Django Views,我目前已经创建了一个模型,如下所示 class Customer(models.Model): first_name = models.CharField(max_length=200, null=True) middle_name = models.CharField(max_length=200, blank=True,default='') last_name = models.CharField(max_length=200, null=True) em

我目前已经创建了一个模型,如下所示


class Customer(models.Model):
    first_name = models.CharField(max_length=200, null=True)
    middle_name = models.CharField(max_length=200, blank=True,default='')
    last_name = models.CharField(max_length=200, null=True)
    email = models.CharField(max_length=200, null=True)

class CustomerlistFilter(django_filters.FilterSet):
    id = CharFilter(lookup_expr='icontains')
    first_name = CharFilter(lookup_expr='iexact')
    middle_name = CharFilter(lookup_expr='iexact')
    last_name = CharFilter(lookup_expr='iexact')


    class Meta:
        model = Customer
        fields = ['id', 'first_name', 'middle_name', 'last_name']

在我看来.py

我有

    customer_list =  Customer.objects.all()

    myFilter1 = CustomerlistFilter(request.GET,queryset=customer_list)
    customer_list = myFilter1.qs

在my filters.py中,我编写了如下所示的内容


class Customer(models.Model):
    first_name = models.CharField(max_length=200, null=True)
    middle_name = models.CharField(max_length=200, blank=True,default='')
    last_name = models.CharField(max_length=200, null=True)
    email = models.CharField(max_length=200, null=True)

class CustomerlistFilter(django_filters.FilterSet):
    id = CharFilter(lookup_expr='icontains')
    first_name = CharFilter(lookup_expr='iexact')
    middle_name = CharFilter(lookup_expr='iexact')
    last_name = CharFilter(lookup_expr='iexact')


    class Meta:
        model = Customer
        fields = ['id', 'first_name', 'middle_name', 'last_name']


是否有方法实现OR函数,以便我可以为每个字段使用一个搜索框而不是多个搜索框

我认为您不必使用
过滤器集
,因为
过滤器集
是一套过滤方法

您可以只使用H进行筛选:

from django.db.models import Q

customer_list =  Customer.objects.filter(
    Q(id__icontains=search_query) |
    Q(first_name__icontains=search_query) |
    Q(middle_name__icontains=search_query) |
    Q(last_name__icontains=search_query)
)

我认为您不必使用
FilterSet
,因为
FilterSet
是一套过滤方法

您可以只使用H进行筛选:

from django.db.models import Q

customer_list =  Customer.objects.filter(
    Q(id__icontains=search_query) |
    Q(first_name__icontains=search_query) |
    Q(middle_name__icontains=search_query) |
    Q(last_name__icontains=search_query)
)

将“search_query=request.GET.GET('name-of-input-item')”替换为“myFilter1=CustomerlistFilter(request.GET,queryset=customer_list)”@kamcoder:否,这将获取您在表单中提交的数据(请注意,
输入项的名称
应替换为
元素的
名称=“…”字段中的值)。。。然后用
Customer.objects.all()
queryset和
Customer.objects.filter(…)
过滤
Customer.objects.all()
queryset。我明白,在这种情况下需要filters.py吗?谢谢先生,我非常感谢您的帮助。是否将“search\u query=request.GET.GET('name-of-input-item')”替换为“myFilter1=CustomerlistFilter(request.GET,queryset=Customer\u list)”@kamcoder:否,这将获取您在表单中提交的数据(请注意,
输入项的名称
应替换为
`元素的
名称=“…”属性中的值)。。。然后过滤
Customer.objects.all()
queryset和
Customer.objects.filter(…)
。我知道,这种情况下需要filters.py吗?谢谢先生,我感谢您的帮助。