Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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
Javascript Django在一个html搜索字段中进行多个搜索+;selectpicker=如何更改操作的值?_Javascript_Jquery_Django_Search - Fatal编程技术网

Javascript Django在一个html搜索字段中进行多个搜索+;selectpicker=如何更改操作的值?

Javascript Django在一个html搜索字段中进行多个搜索+;selectpicker=如何更改操作的值?,javascript,jquery,django,search,Javascript,Jquery,Django,Search,我希望你很好 我有不同的搜索视图: #在用户应用程序中搜索配置文件({%url'用户:用户配置文件\结果“%”) #Nutricore应用程序中的搜索文章({%url'搜索结果'%}) 我希望所有这些搜索都以一种带有下拉列表的形式出现(类似这样的内容): 有人对此有想法吗?提前感谢, <form action="???" method="get" class="div-only-desk mr-2 my-auto

我希望你很好

我有不同的搜索视图:

#在用户应用程序中搜索配置文件({%url'用户:用户配置文件\结果“%”)

#Nutricore应用程序中的搜索文章({%url'搜索结果'%})

我希望所有这些搜索都以一种带有下拉列表的形式出现(类似这样的内容): 有人对此有想法吗?提前感谢,

            <form action="???" method="get" class="div-only-desk mr-2 my-auto w-100 order-1">
             <div class="input-group">
<div class="dropdown">
  <select class="selectpicker bouton-catego dropdown-toggle">
  <optgroup label="Nutriscore">
    <option value="{% url 'search_results_autor' %}">Autor</option>
    <option value="{% url 'search_results' %}">Nutri</option>
  </optgroup>
  <optgroup label="Cooker">
    <option value="{% url 'user:userprofile_result' %}">Find a cooker</option>
  </optgroup>
</select>
</div>
<input class="form-control border border-right-0h" name="q" type="text" placeholder="{{ q }}" aria-label="Search">
            </div>
        </form>

自动
海狸鼠
找个炊具

一种解决方案是使用
TemplateView
,代码如下:

class SearchResultsView(TemplateView):
    template_name = 'search_results.html' 
    
    query1 = request.GET.get('q1')
    articles = Post.objects.filter(
        Q(title__icontains=query) | Q(slug__icontains=query)
    )

    profiles = request.GET.get('q2')
    object_list = UserProfile.objects.filter(
        Q(pays__icontains=query) | Q(town__icontains=query)
    )
    
    args = {'profiles': profiles, 'articles': articles}
    return render(request, self.template_name, args)

您可以使用
{%if profiles%}
{%if articles%}
检查结果,并仅在结果存在时显示结果,您还需要进行一些样式设置,以将结果显示为列表。

谢谢您的回答Arun:),但是有没有办法使用与selectpicker值相关的变量?是的,您可以定义一个JavaScript函数,该函数在更改select值时更改该变量的值(使用select上的
onchange
事件处理程序)。
            <form action="???" method="get" class="div-only-desk mr-2 my-auto w-100 order-1">
             <div class="input-group">
<div class="dropdown">
  <select class="selectpicker bouton-catego dropdown-toggle">
  <optgroup label="Nutriscore">
    <option value="{% url 'search_results_autor' %}">Autor</option>
    <option value="{% url 'search_results' %}">Nutri</option>
  </optgroup>
  <optgroup label="Cooker">
    <option value="{% url 'user:userprofile_result' %}">Find a cooker</option>
  </optgroup>
</select>
</div>
<input class="form-control border border-right-0h" name="q" type="text" placeholder="{{ q }}" aria-label="Search">
            </div>
        </form>
class SearchResultsView(TemplateView):
    template_name = 'search_results.html' 
    
    query1 = request.GET.get('q1')
    articles = Post.objects.filter(
        Q(title__icontains=query) | Q(slug__icontains=query)
    )

    profiles = request.GET.get('q2')
    object_list = UserProfile.objects.filter(
        Q(pays__icontains=query) | Q(town__icontains=query)
    )
    
    args = {'profiles': profiles, 'articles': articles}
    return render(request, self.template_name, args)