使用django表单提交传递变量

时间:2012-08-29 18:12:09

标签: python django forms django-templates

我的侧边栏顶部有一个搜索框。此搜索栏搜索所有视图(任务,列表和信息)。结果显示在这三个类别中,但默认情况下折叠列表和信息以使视图更易于阅读。

相反,我想确定用户用于搜索的侧边菜单,并在返回结果时折叠其他两个类别。

因此,如果用户正在查看任务,搜索结果将列出任务,但返回列表和信息结果已折叠。如果用户在列表中使用了搜索框,则结果将列出列表项,但会折叠任务和信息。

相同的功能用于处理所有搜索结果:

def search(request):

    query_string = ''
    search_results = SortedDict([])

    if ('q' in request.GET) and request.GET['q'].strip():
        query_string = request.GET['q']

        entry_query = get_query(query_string, ['name', 'notes',])

getquery()在数据库中搜索query_string

从模板中调用此函数:

<form method="get" action="{% url search %}" style="display:inline;" >
    <input name="q" class="span9" value="{{ request.GET.q }}" id="appendedInputButton" size="16" type="text">
    <button class="btn" type="submit">
        <i class="icon-search" title="Search"></i>
    </button>
</form>

我如何传递当前网址或其他模板变量以及此表单提交,以便我在搜索功能中提供一些模板信息?这样我就可以将信息传递给搜索结果将告诉模板哪些类别要崩溃。

1 个答案:

答案 0 :(得分:0)

最简单,最简单的方法是使用单独的按钮。如果为每个名称指定一个名称,并且在特定视图处于活动状态时仅显示相应的名称,则可以通过POST中的按钮名称来确定哪个视图处于活动状态。

唯一的另一条路线是创建隐藏字段,并在视图更改时使用JavaScript正确设置字段的值。