Как добавить параметры запроса к <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>