我有一个基侧栏,其中包含两个项page1和page2。当用户单击某一项时,它将呈现相应的页面。我还在侧边栏中有一个过滤器,允许用户按类型过滤页面上的结果。当我选择一个过滤器时,我能够在页面上看到适当的结果,但我的目的是让系统记住最后的筛选器选择,所以当用户选择一个新的页面时,它将自动显示最后选择的过滤器的结果。这可以通过通过GET方法发送变量“type”来完成吗?否则任何其他解决方案都将不胜感激。
在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,}Page1 HTML:
{% extends 'dashboard/base.html' %}
{% block content %}
<h1> Page1: {{type}} </h1>
{% end block %}Page2 HTML:
{% extends 'dashboard/base.html' %}
{% block content %}
<h1> Page2: {{type}} </h1>
{% end block %}发布于 2022-02-04 09:09:36
您可以通过辅助医务人员获得以下信息
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://stackoverflow.com/questions/70983644
复制相似问题