【问题标题】:How to pass argument from django template to views on clicking list item from list?如何将参数从 django 模板传递到单击列表中的列表项的视图?
【发布时间】:2020-12-11 04:54:36
【问题描述】:

在我的模板中,我有一个列表,其中包含名称和 id 标题下的一些项目,我想为每个项目添加超链接,当我单击一个项目时,它会将其 id 作为 views.py 中函数的参数django 并运行该函数。

目前我的模板如下所示:

<html>
<head>
<body>


<table border="1" cellpadding="5" cellspacing="5">

<td>ID</td>
<td>Name</td>

{% for i in data%}

<tr>
<td>{{i.ID}}</td>
<td>{{i.Name}}</td>
</tr>

{% endfor %}

</table>

</body>
</head></html>

【问题讨论】:

    标签: javascript python html django web


    【解决方案1】:

    你可以在你的 td 之后简单地做一个 href。在你看来,你可以做功能的事情。您需要定义一个接受 id 参数的函数。

    <html>
    <head>
    <body>
    
    
    <table border="1" cellpadding="5" cellspacing="5">
    
    <td>ID</td>
    <td>Name</td>
    
    {% for i in data%}
    
    <tr>
    <td>{{i.ID}}</td>
    <td> <a href="/yourpath/{{i.id}}"{{i.Name}}></td>
    </tr>
    
    {% endfor %}
    
    </table>
    
    </body>
    </head></html>
    
    
    
    
    def your_function_name(request, YOUR_ID):
    
       # code
    
    

    也在你的 urls.py 中

    
    urlpatterns= [
        path('your_path/<your_id>/', views.your_function_name, name='your_name'),
    ]
    
    
    

    【讨论】:

    • 但是函数如何将 id 作为参数并在函数中使用该参数。它说函数得到了意外的参数
    • 当您单击表格中的项目时,它将转到您的路径。 这是您将参数传递给路径和函数的地方。在请求之后,它希望您将参数提供给函数。之后剩下的就是简单的python。
    • 我听不懂,能否请您编辑您的解决方案并使其更详细?
    • 您是否尝试按照答案中的方式执行我的解决方案?
    • 是的,它说找不到页面
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    • 2020-07-05
    • 1970-01-01
    • 2019-01-11
    • 2013-07-15
    相关资源
    最近更新 更多