【问题标题】:Django - show the query in the search box on the results pageDjango - 在结果页面的搜索框中显示查询
【发布时间】:2018-05-05 12:47:55
【问题描述】:

我正在尝试在结果页面的搜索框中显示用户的搜索查询。一个非常基本的问题,但由于某种原因,它对我不起作用

我的 views.py 看起来像:

def search(request):
    result_list = []
    if request.method == 'POST':
        query = request.POST['query'].strip()
        if query:
            print(query)
            print(type(query))
            # Run our Webhose search function to get the results list!
            result_list = run_query(query)
            context_dict = {'result_list': result_list, 'query': query}
    context_dict = {'result_list': result_list}
    return render(request, 'rango/search.html', context_dict)

我的 search.html 模板如下:

{% block body_block %}
<div>
    <h1>Search with Rango</h1>
    <br/>
    <form class="form-inline" id="user_form"
    method="post" action="{% url 'search' %}">
        {% csrf_token %}
        <div class="form-group">
            <input class="form-control" type="text" size="50"
                   name="query" value="{{query}}" id="query" />
        </div>
        <button class="btn btn-primary" type="submit" name="submit"
        value="Search">Search</button>
    </form>

    <div>
    {% if result_list %}
    <h3>Results</h3>
    <!-- Display search results in an ordered list -->
        <div class="list-group">
    {% for result in result_list %}
    <div class="list-group-item">
        <h4 class="list-group-item-heading">
            <a href="{{ result.link }}">{{ result.title }}</a>
            </h4>
            <p class="list-group-item-text">{{ result.summary }}</p>
            </div>
            {% endfor %}
        </div>
        {% endif %}
    </div>
</div>
{% endblock %}

有什么建议吗?

【问题讨论】:

  • 你有什么问题?你的query 顺利通过而不返回result_list
  • 您的 context_dict 正在被覆盖

标签: python django search bootstrap-4


【解决方案1】:

我的 context_dict 被覆盖了。 请在下面找到解决方案:

def search(request):
    query = ''
    result_list = []
    if request.method == 'POST':
        query = request.POST['query'].strip()
        if query:
            print(query)
            print(type(query))
            # Run our Webhose search function to get the results list!
            result_list = run_query(query)
    context_dict = {'result_list': result_list, 'query': query}
    return render(request, 'rango/search.html', context_dict)

【讨论】:

    猜你喜欢
    • 2020-11-17
    • 2022-01-18
    • 1970-01-01
    • 2019-10-01
    • 2018-03-05
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多