如何将查询参数添加到 <a href=

How to add query parameters to the <a href=

我想从一个页面重定向到另一个页面(并保存查询参数)。所以我重定向

base.html
<tr>
<td> <a href="search/"></a></td>
<td>...</td>
</tr>
urls.py
 path('main/search/', views.x, name='table_query')
views.py
@login_required
@inject_session_params
def table_structure(request, user_data, *args, **kwargs):
    if request.method=='GET':
        user_data['table']=kwargs['table']
        user_data['structure'] = getTableProps(kwargs['table'])
    else:
        return redirect('login')
    return render(request, 'x.html', user_data)

我已经获得了我想用于查询的所有所需信息,但我不确定如何在 <a> 中使用它。

我试图创建另一个函数,它会生成 url 然后重定向到所需的视图,但它给了我一个错误。这是我试过的:

base_url=reverse('table_query')
query = urlencode({'x': x, 'y': y, 'z': z})
url='{}?{}'.format(base_url,query)

如何在标签内添加查询参数(带有函数)而不写 <a href="search?x=x&y=y&z=z"?

您可以在响应上下文中添加它:

# views.py
@login_required
@inject_session_params
def table_structure(request, user_data, *args, **kwargs):
    if request.method=='GET':
        user_data['table']=kwargs['table']
        user_data['structure'] = getTableProps(kwargs['table'])
        user_data['query'] = urlencode({'x': x, 'y': y, 'z': z})
    else:
        return redirect('login')
    return render(request, 'x.html', user_data)

然后在模板中 x.html:

<tr><td> 
<a href="{% url 'table_query' %}?{{ query }}"></a>

</td></tr>

最后我是这样解决问题的:

<a href="{% url 'abc' %}?x={{ x}}&y={{ y}}&z={{ z}}"></a>