如何在Django 2.0中创建这个复杂的用户过滤器?
我有几个重叠的类别。我想根据每个人的类型、专业和居住地对他们进行搜索和筛选如何在Django 2.0中创建这个复杂的用户过滤器?,django,django-filter,Django,Django Filter,我有几个重叠的类别。我想根据每个人的类型、专业和居住地对他们进行搜索和筛选 class Profile(models.Model): user = models.OneToOneField(User, on_delete = models.CASCADE) gender = models.CharField(choices = GENDER_CHOICES) country = models.C
class Profile(models.Model):
user = models.OneToOneField(User, on_delete = models.CASCADE)
gender = models.CharField(choices = GENDER_CHOICES)
country = models.CharField(choices = COUNTRY_CHOICES)
city = models.CharField(choices = CITY_CHOICES)
class License(models.Model):
user = models.OneToOneField(User, on_delete = models.CASCADE)
types = models.CharField( choices = TYPES)
specialization = models.CharField( choices = SPECIALIZATION_CHOICES)
这是我的过滤器
def search(request):
profiles = Profile.objects.all()
if request.method == 'POST':
types = request.POST['types']
specialization = request.POST['specialization']
country = request.POST['country']
city = request.POST['city']
gender = request.POST['gender']
if types or specialization or username or country or city or gender:
license_match = License.objects.filter(
Q(types__exact = types)|
Q(specialization__exact = specialization)
)
profile_mutch = Profile.objects.filter(
Q(country__exact = country)|
Q(city__exact = city)|
Q(gender__exact = gender)
)
if license_match or profile_mutch:
license_match = License.objects.filter(
Q(types__exact = types)|
Q(specialization__exact = specialization)
)
profile_mutch = Profile.objects.filter(
Q(country__exact = country)|
Q(city__exact = city)|
Q(gender__exact = gender)
)
mutch = profile_mutch and license_match
paginator = Paginator(mutch, 60)
page = request.GET.get(mutch, 1)
page_number = request.GET.get(page)
page_obj = paginator.get_page(page_number)
return render(request, 'search_result.html', {'page_obj': page_obj, 'result': mutch, 'profiles': profiles})
else:
messages.error(request, 'No result found.')
else:
return HttpResponseRedirect('result')
else:
profile_mutch = Profile.objects.all()
license_match = License.objects.all()
mutch = profile_mutch and license_match
paginator = Paginator(mutch, 60)
page = request.GET.get(mutch, 1)
page_number = request.GET.get(page)
page_obj = paginator.get_page(page_number)
return render(request, 'search_result.html', {'page_obj': page_obj, 'result': mutch, 'profiles': profiles})
我的模板中有多个字段表单,但此查询集返回此错误
基数为10的int()的文本无效:“”
第'Q行(性别=性别)
`第一个