[英]Django 1.9 cannot pass context variable to template using {{}}
我不知道為什么不能使用上下文來傳遞模板,我在網上檢查了,我必須使用上下文處理器,還必須在settings.py
設置上下文處理器,為什么我不能使用它來通過view.py
傳遞上下文模板。 我使用Django 1.9
在view.py
:
from .models import Product
def sellmainpage(request):
products=Product.objects.all()
context={
'products'= products
return render(request,'sell.html',context)
在sell.html
:
{% for product in products}
<span>{{product.name}}</span>
{% endfor %}
如果您的模型是
class Product(models.Model):
product=models.CharField(max_length=200)
companyname=models.ForeignKey(Company)
description=models.TextField()
price=models.DecimalField(decimal_places=2,max_digits=10)
stock=models.IntegerField(default=0)
然后,您沒有一個名為name
的字段 ,也許您想要該字段product
或公司companyname
?
{% for product in products %}
<span>{{product.product}}</span>
{% endfor %}
要么
{% for product in products %}
<span>{{product.companyname}}</span>
{% endfor %}
如果仍然無法正常工作,則需要檢查len(products)
以查看其是否為空。
我謹指出,您有許多“瑣碎的”語法問題,我強烈建議您閱讀Django和Python傳給您的錯誤,並學習如何調試這些錯誤。 另外,我還將按照教程來完善自己的技能。
在Python中,您可以像這樣形成字典
context={'products': products}
不
context={'products'= products} # Wrong syntax, don't use
如果您堅持使用=
號,則可以使用dict
context = dict(products=products)
多虧@DeepSpace評論,您也遇到了這個問題,缺少結束%}
{% for product in products %}
^
|__ You missed this %
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.