Django - 如何在按下按钮后将当前 url 参数传递给新的 url
Django - How to pass current url parameters if any to a new url after pressing a button
我的当前页面有一个过滤器,用户可以根据需要填写该过滤器。
def charts_wallet_view(request):
result = {}
filtered_date1 = request.GET.get('fecha_inicio', '')
filtered_date2 = request.GET.get('fecha_fin', '')
context = {
'mes_inicio' : mes_inicio,
'mes_fin' : mes_fin,
}
return render(request, 'wallet.html', context)
在 wallet.html 中有一个按钮可以将用户重定向到一个新的 url 下载文件:
<a class="gpg-button egp secondary no_decoration" href="{% url "export_wallet" %}">
我的问题是:如何将参数(fecha_inicio 和 fecha_fin)传递给新的 url/view?首先我想做这样的事情:
<a class="gpg-button egp secondary no_decoration" href="{% url "export_wallet" mes_inicio mes_fin %}">
但是没有用。然后我虽然我也需要在 url.py 中添加两个参数:
path('export_wallet/<str:mes_inicio>/<str:fecha_fin >', views.export_wallet_view, name='export_wallet')
并且在 export_wallet 视图中:
def charts_wallet_view(request, mes_inicio,mes_fin):
#view logic
但是当参数没有传递任何值时,这不起作用。
编辑,因为问题改变了:
在这里执行 POST 可能比 GET 更有意义。
path('export_wallet/', views.export_wallet_view, name='export_wallet'),
.inline {
display: inline;
}
.link-button {
background: none;
border: none;
color: blue;
text-decoration: underline;
cursor: pointer;
font-size: 1em;
font-family: serif;
}
.link-button:focus {
outline: none;
}
.link-button:active {
color:red;
}
<form method="post" action="{% url 'export_wallet' %}" class="inline">
<input type="hidden" name="fecha_inicio" value="{{ fecha_inicio }}">
<input type="hidden" name="fecha_fin" value="{{ fecha_fin }}">
<button type="submit" name="submit_param" value="submit_value" class="link-button">
This is a link that sends a POST request
</button>
</form>
然后在你的 export_wallet_view:
fecha_fin = request.POST.get("fecha_fin")
我的当前页面有一个过滤器,用户可以根据需要填写该过滤器。
def charts_wallet_view(request):
result = {}
filtered_date1 = request.GET.get('fecha_inicio', '')
filtered_date2 = request.GET.get('fecha_fin', '')
context = {
'mes_inicio' : mes_inicio,
'mes_fin' : mes_fin,
}
return render(request, 'wallet.html', context)
在 wallet.html 中有一个按钮可以将用户重定向到一个新的 url 下载文件:
<a class="gpg-button egp secondary no_decoration" href="{% url "export_wallet" %}">
我的问题是:如何将参数(fecha_inicio 和 fecha_fin)传递给新的 url/view?首先我想做这样的事情:
<a class="gpg-button egp secondary no_decoration" href="{% url "export_wallet" mes_inicio mes_fin %}">
但是没有用。然后我虽然我也需要在 url.py 中添加两个参数:
path('export_wallet/<str:mes_inicio>/<str:fecha_fin >', views.export_wallet_view, name='export_wallet')
并且在 export_wallet 视图中:
def charts_wallet_view(request, mes_inicio,mes_fin):
#view logic
但是当参数没有传递任何值时,这不起作用。
编辑,因为问题改变了: 在这里执行 POST 可能比 GET 更有意义。
path('export_wallet/', views.export_wallet_view, name='export_wallet'),
.inline {
display: inline;
}
.link-button {
background: none;
border: none;
color: blue;
text-decoration: underline;
cursor: pointer;
font-size: 1em;
font-family: serif;
}
.link-button:focus {
outline: none;
}
.link-button:active {
color:red;
}
<form method="post" action="{% url 'export_wallet' %}" class="inline">
<input type="hidden" name="fecha_inicio" value="{{ fecha_inicio }}">
<input type="hidden" name="fecha_fin" value="{{ fecha_fin }}">
<button type="submit" name="submit_param" value="submit_value" class="link-button">
This is a link that sends a POST request
</button>
</form>
然后在你的 export_wallet_view:
fecha_fin = request.POST.get("fecha_fin")