如何将 ID 传递到 Django 模板并检索数据

Posted

技术标签:

【中文标题】如何将 ID 传递到 Django 模板并检索数据【英文标题】:How to pass an ID into a Django template and retrieve data 【发布时间】:2020-07-06 19:32:39 【问题描述】:

我在将 id 传递给模板时遇到了困难。这是我的views.py文件

def add_academy(request,pk):
    child=get_object_or_404(Child_detail,pk=pk)
    academy=Academic.objects.filter(Student_name=child)
    context=
        'academy':academy,
    

    return render(request,'functionality/more/academy/add.html',context)

这也是我的 urls.py 文件

from . import views
from django.urls import path

urlpatterns=[
    path('add_academy/<int:pk>/',views.add_academy, name='add_academy')
]

这是我的模板

<div class="container">
    <td><a href="% url 'add_academy' child.id  %">
        <button type="button" class="btn btn-primary">Add Academic details of a child</button>
        </a>
    </td>

它向我显示了一个错误,指出

NoReverseMatch at /academy/add_academy/3/
Reverse for 'academy' not found. 'academy' is not a valid view function or pattern name.
Request Method: GET
Request URL:    http://127.0.0.1:8000/academy/add_academy/3/

【问题讨论】:

您的 urls.py 是否包含在根 urls 模块中?错误提示无法找到academy 部分网址。 学院应用已添加到根网址中 【参考方案1】:

也许你需要在你的 url 中设置 app_name

from . import views
from django.urls import path

app_name = 'academy'

urlpatterns=[
    path('add_academy/<int:pk>/',views.add_academy, name='add_academy')
]

【讨论】:

以上是关于如何将 ID 传递到 Django 模板并检索数据的主要内容,如果未能解决你的问题,请参考以下文章

将信息从 javascript 传递到 django 应用程序并返回

如何将数据值从视图传递到 Django 中的模板?

如何将变量从 python Django 传递到 HTML 模板

如何将 Django 变量传递给 Vue 道具

如何将不同的数据从视图传递到模板?

从 Django HTML 表单中检索数据并将其传递给 MySQL 数据库