【发布时间】:2021-09-01 22:01:16
【问题描述】:
在我的views.py 中的一个Django 项目中,我有一些代码:
from django.shortcuts import render
from django.http import HttpResponse
from .models import *
# Create your views here.
products = Product.objects.all()
product_list = list(products)
def displayhome(request):
return render(request, 'bootstrap/index.html', {'title': product_list[0].title}, {'link': product_list[0].official_path_name})
现在使用这个(非常笨重的)方法,我可以将变量的字符串版本放入 html 中:
{{title}}
例如。但是,这不允许我对变量进行操作,例如如果我通过product_list 发送,我无法收到product_list[0]。我隐约知道使用{% %} 标签而不是{{ }},但我(a)不完全确定它们是如何工作的并且(b)不知道它们有多强大,例如如果您可以像使用普通的 python 文件一样使用它。
例如,我将如何使用来自 python 的变量(比如它是一个值为 4 的整数)来创建可变数量的 html 元素(例如 4 个框)?
如果没有简单的方法在 html 中执行 python,有没有办法将我的 python 变量放入 javascript,然后以某种方式在 html 中使用这些变量?
【问题讨论】:
-
经验法则:任何过多的逻辑都不应在模板中完成,而应在视图中完成。无论如何 - 访问模板中的属性/值是通过
.运算符完成的,无论它是什么数据结构,所以你想要的是product_list.0 -
阅读 Django 文档中的 Variables。如果要在模板中访问
product_list[0],则必须将其写为{{ product_list.0 }}。 -
有没有更简单的方法可以一次将多个变量添加到模板中?
标签: javascript python html django variables