【问题标题】:Pass variable with django form submission使用 django 表单提交传递变量
【发布时间】:2012-08-24 10:08:40
【问题描述】:

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

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

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

同一个函数用于处理所有的搜索结果:

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() 在数据库中搜索查询字符串

这个函数是从模板中调用的:

<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>

我如何将当前 url 或其他模板变量与此表单提交一起传递,以便我在搜索功能中获得一些可用的模板信息? 这样我就可以将信息传递给会告诉模板哪些类别要折叠的搜索结果。

【问题讨论】:

  • 在您的搜索表单中添加一个隐藏输入来标识调用它的视图是否可行? (例如
  • 尝试获取参数。 action="{% url 搜索 %}?param1={{val1}}&param2={{val2}}"

标签: python django forms django-templates


【解决方案1】:

最简单、最简单的方法是使用单独的按钮。如果您为每个视图指定一个名称,并且在特定视图处于活动状态时仅显示适当的视图,则您可以根据 POST 中按钮名称的存在来判断哪个视图处于活动状态。

唯一的其他途径是创建一个隐藏字段,并在视图更改时使用 JavaScript 适当地设置该字段的值。

【讨论】:

    猜你喜欢
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    • 2014-01-22
    • 2011-07-03
    • 2020-07-07
    • 2011-05-18
    • 2017-01-30
    • 1970-01-01
    相关资源
    最近更新 更多