2016-06-08 48 views
0

我不知道爲什麼我不能用上下文來傳遞我的模板,我在網上查了,我必須使用背景處理器,還可以設置背景處理器在我settings.py,爲什麼我不能使用它將view.py的上下文傳遞給模板。我使用Django 1.9的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 %} 
+1

是你的代碼嗎?如果是這樣,甚至不正確的Python語法。它應該是'context = {'products':products}'。 –

+0

不知道,如果它在粘貼一個錯字,但你缺少'「%」':{在產品%%產品}'' – DeepSpace

+1

而缺少'}' – Gocht

回答

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,也許你想要t他字段productcompanyname

{% 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 comm ent,你也有這個問題,遺漏關閉%}

{% for product in products %} 
         ^
          |__ You missed this % 
+1

OP也缺少'%':'{%for product in products%}'。也許你想添加到你的答案。 – DeepSpace

+0

@DeepSpace謝謝,完成了。 – bakkal

+0

對不起,那些語法錯誤是錯字,在我的代碼沒有語法錯誤之後。但我仍然無法將上下文傳遞給模板 –

相關問題