簡體   English   中英

Django 1.9無法使用{{}}將上下文變量傳遞給模板

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM