我有一個包含兩個專案 page1 和 page2 的基本側邊欄。當用戶點擊一個專案時,它會渲染相應的頁面。我還在邊欄中有一個過濾器,允許用戶按型別過濾頁面上的結果。當我選擇過濾器時,我能夠在頁面上看到適當的結果,但我的目標是讓系統記住最后一次過濾器選擇,所以當用戶選擇新頁面時,它會自動顯示最后選擇的過濾器的結果. 這可以通過 GET 方法發送變數“型別”來完成嗎?或任何其他解決方案將不勝感激。
在 base.html 中,通過 Get 方法呈現一個新頁面
<div id="page" class="collapse" aria-labelledby="headingUtilities"
data-parent="#accordionSidebar">
<div class="bg-white py-2 collapse-inner rounded">
<a class="collapse-item" href="page1">Page1</a>
<a class="collapse-item" href="page2">Page2</a>
</div>
</div>
在 base.html 中,通過 POST 方法過濾當前頁面
<div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionSidebar">
<div class="bg-white py-2 collapse-inner rounded">
<h6 class="collapse-header">Filter By Type:</h6>
<form name="modality" action="" id='type' method="post" enctype="multipart/form-data">
{% csrf_token %}
<input class="collapse-item" name ='type' type="submit" value="type1" onclick="this.form.submit()">
<input class="collapse-item" name ='type' type="submit" value="type2" onclick="this.form.submit()">
<input class="collapse-item" name ='type' type="submit" value="type3" onclick="this.form.submit()">
</form>
</div>
</div>
django視圖:
@login_required(login_url='login')
def page1(request):
if request.method == 'POST':
type = request.POST['type']
else:
type = 'type1'
return render(request, "dashboard/page1.html",
{
'type': type,}
@login_required(login_url='login')
def page2(request):
if request.method == 'POST':
type = request.POST['type']
else:
type = 'type1'
return render(request, "dashboard/page2.html",
{
'type': type,}
第 1 頁 HTML:
{% extends 'dashboard/base.html' %}
{% block content %}
<h1> Page1: {{type}} </h1>
{% end block %}
第 2 頁 HTML:
{% extends 'dashboard/base.html' %}
{% block content %}
<h1> Page2: {{type}} </h1>
{% end block %}
uj5u.com熱心網友回復:
可以通過引數得到如下
urlpatterns = [
path('dashboard/page1/<type>, page1view),
path('dashboard/page2/<type>, page2view)
]
然后使用它們
def page1view(request, type):
pass
但我認為你應該改用會話。用戶將自動向您發送每個新請求的會話識別符號,django 將獲取您選擇存盤在該用戶會話中的所有資料。可以用作字典。
request.session['type'] = type
type = request.session['type']
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/426782.html
