我不知道为什么我不能使用上下文来传递我的模板,我在线查看,我必须使用上下文处理器并在我的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 %}
答案 0 :(得分:3)
如果您的模型是
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 %