gpt4 book ai didi

django - 无法在 Django 的模板中呈现 View

转载 作者:行者123 更新时间:2023-12-04 08:39:21 24 4
gpt4 key购买 nike

我无法在模板中呈现我的 View 。
我想我已经尝试了一切。
除了模板上的数据渲染外,一切正常。
我的模型.py:

from django.db import models
class Driver(models.Model):
name = models.CharField(max_length=150)
surname = models.CharField(max_length=150, default='')

def __str__(self):
return self.name
我的意见.py:
from django.shortcuts import render
from zoo.models import Driver


def MyView(request):
drivers = Driver.objects.all()
return render("zoo/base.html", {"drivers": drivers})

我的模板:
{% load staticfiles %}
{% load render_bundle from webpack_loader %}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Example</title>
{% render_bundle 'app' 'css' %}
</head>
<body>
{{ drivers }}

{{ drivers.name }}

{% for driver in drivers %}
{{driver.name}}

</body>
</html>

我的数据库有 315 个司机,包含司机的名字和姓氏。
项目结构:
Project 
app
setting.py
__init__.py
...
zoo
templates
base.html
__init__.py
models.py
views.py
...

最佳答案

View .py
views.py改变:

return render("zoo/base.html", {"drivers": drivers})
到:
return render(request, "zoo/base.html", {"drivers": drivers})
模板
您需要关闭您的 for在您的模板中循环。在 https://docs.djangoproject.com/en/3.1/ref/templates/builtins/ 上有很好的信息值得一读。 .
{% for driver in drivers %}
{{ driver.name }}
{% endfor %}
此外,我从您提供的代码和您的解释中猜测 {{ drivers.name }}可能不会渲染。直到你遍历你的 drivers您将能够访问个人的 QuerySet driver字段(如 driver.name )。
文件结构
最好的做法是为模板和静态文件命名。 Django 的教程在 https://docs.djangoproject.com/en/3.1/intro/tutorial03/ 上讨论了这个问题。 .如果您这样做,您的目录结构将从此改变(您目前拥有的):
Project 
app
setting.py
__init__.py
...
zoo
templates
base.html
__init__.py
models.py
views.py
...
对此:
Project 
app
setting.py
__init__.py
...
zoo
templates
zoo
base.html
__init__.py
models.py
views.py
...
最后,我强烈建议您将模板重命名为特定于此特定 View 的名称。例如,如果这是您的索引 View ,您可以将其命名为 index.html .或者也许 zoo.html与您的 View 名称相对应。
这不是必需的,但如果您想扩展 base.html,当您构建此应用程序时,它会很有用。文件。这很方便,因为它允许您减少样板 html 并专注于每个模板/ View 的核心功能。它还具有以下优点:可以更轻松地在所有扩展相同的不同页面之间提供一致的用户体验 base.html文件。
要了解有关此检查的更多信息 https://docs.djangoproject.com/en/3.1/ref/templates/language/ .
重要提示:如果您这样做,请不要忘记将您的电话更改为 renderviews.py以容纳您重命名的模板文件。

关于django - 无法在 Django 的模板中呈现 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64636830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com