首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以使用GET方法将一个值从HTML页面传递给Django视图?

是否可以使用GET方法将一个值从HTML页面传递给Django视图?
EN

Stack Overflow用户
提问于 2022-02-04 08:52:27
回答 1查看 64关注 0票数 0

我有一个基侧栏,其中包含两个项page1和page2。当用户单击某一项时,它将呈现相应的页面。我还在侧边栏中有一个过滤器,允许用户按类型过滤页面上的结果。当我选择一个过滤器时,我能够在页面上看到适当的结果,但我的目的是让系统记住最后的筛选器选择,所以当用户选择一个新的页面时,它将自动显示最后选择的过滤器的结果。这可以通过通过GET方法发送变量“type”来完成吗?否则任何其他解决方案都将不胜感激。

在base.html中,通过Get方法呈现一个新页面

代码语言:javascript
运行
复制
<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方法过滤当前页面

代码语言:javascript
运行
复制
<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意见:

代码语言:javascript
运行
复制
@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:

代码语言:javascript
运行
复制
{% extends 'dashboard/base.html' %}

{% block content %}

    <h1> Page1: {{type}} </h1>

{% end block %}

Page2 HTML:

代码语言:javascript
运行
复制
{% extends 'dashboard/base.html' %}

{% block content %}

    <h1> Page2: {{type}} </h1>

{% end block %}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-04 09:09:36

您可以通过辅助医务人员获得以下信息

代码语言:javascript
运行
复制
urlpatterns = [
  path('dashboard/page1/<type>, page1view),
  path('dashboard/page2/<type>, page2view)
]

然后再用它们

代码语言:javascript
运行
复制
def page1view(request, type):
    pass

但是我认为你应该用会话代替。用户将自动向您发送包含每个新请求的会话标识符,django将获取您选择存储在该用户会话中的所有数据。可以用作字典。

代码语言:javascript
运行
复制
request.session['type'] = type
type = request.session['type']
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70983644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档