模板未显示通过传递参数使用视图函数从 sqlite 获取的数据(为空白)

Posted

技术标签:

【中文标题】模板未显示通过传递参数使用视图函数从 sqlite 获取的数据(为空白)【英文标题】:Template not showing data (is blank) fetched from sqlite using view function by passing a parameter 【发布时间】:2020-05-09 12:09:18 【问题描述】:

我实现了一项功能,在从数据库中获取的每一行旁边都有一个“查看”按钮。单击它时,它会发送事件的id 以查看 URL。然后视图从 SQLite 中获取过滤后的数据;但它没有显示模板中的数据。

template.html

<td><a href="% url 'event' eid=ev.id %">View</a></td>

urls.py

path('<int:eid>', views.event_det, name='event'),

views.py

def event_det(request, eid):
    data = Event.objects.filter(id=eid)
    return render(request, 'event_details.html', 'event': data)

template.html 显示获取的输出

% for ev in event %
        <div class="card mb-12">
            <div class="row no-gutters">
                <div class="col-md-12">
                    <img src="% static 'face_detector/datasets/9187/color-1.png' %" class="card-img" >
                </div>
                <div class="col-md-12">
                    <div class="card-body">
                        <h2 class="card-title"> ev.name </h2>
                        <p class="card-text"> ev.description </p>
                        <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
                    </div>
                </div>
...

【问题讨论】:

您确定您的对象过滤器正在返回任何数据吗? 是的,我也尝试使用其他字段,但只是为了确保这一点没有运气 我们能看到你所有的 urls.py。我想知道您是否错误地选择了另一个 url 路径。 在您的模板中,如果您添加类似&lt;h1&gt;Count of events is event.count &lt;/h1&gt; 之类的内容,您会看到什么是 0 还是给您一个正整数? @MattSeymour 你是对的。存在路径重复。谢谢你的努力 【参考方案1】:

一个常见问题是您的 urls.py 可能有重复的条目或重复的有效条目。在这种情况下,将评估并最终呈现要匹配的第一个路径。

请检查您的 urls.py 是否有任何可能被错误调用的路径。

【讨论】:

以上是关于模板未显示通过传递参数使用视图函数从 sqlite 获取的数据(为空白)的主要内容,如果未能解决你的问题,请参考以下文章

无法将参数从模板传递到 Django 视图

您如何通过传递参数从fllite中显示来自sqlite的特定数据

Django - 将变量从函数视图传递到 html 模板

django - 将参数从模板传递到 models.py 的函数

Python - 通过传递多个参数从 sqlite 表中选择

NoReverseMatch:无法将参数从模板传递到视图。