2017-11-21 9 views
1

どこが間違っているのか分かりません。私はDjango/HTML/Foundationsを使用してWebストアを作成しており、データベースにある製品をWebページに表示することはできません。私は彼らがデータベースにいることを知っています。なぜなら、私が管理ページに行くと、彼らが現れるからです。ここでウェブページ上のモデルを表示するDjango

は、HTMLピースです:

{% for products in Product %} 
<div class="column"> 
    <h5>Title: {{products.product_name}}</h5> 
    <h5>Type: {{products.product_type}}</h5> 
    <h5>Price: {{products.sales_price}}</h5> 
    <img class="thumbnail" src="http://placehold.it/550x550"> 
</div> 
{% endfor %} 

こちらのモデルです:

class Product(models.Model): 
    product_name = models.CharField(max_length=255) 
    product_type = models.CharField(max_length=100) 
    sales_price = models.CharField(max_length=10)g 

    def __str__(self): 
     return self.product_name + " " + self.product_type + " " + self.sales_price 

製品ページのための私のviews.pyで唯一のものは、次のとおりです。(私のどこに問題があるかもしれません)

def products(request): 
    return render(request,"products.html") 

私はdjangoとpythonの新機能です。誰かが何が起こっているのか説明できますか?ありがとう

答えて

2

context引数を使用して、productsの情報をテンプレートに提供する必要があります。 See the documentation for render()

views.py:

def products(request): 
    context = {'products':Product.objects.all()} 
    return render(request,"products.html",context) 

products.html:

{% for product in products %} 
<div class="column"> 
    <h5>Title: {{product.product_name}}</h5> 
    <h5>Type: {{product.product_type}}</h5> 
    <h5>Price: {{product.sales_price}}</h5> 
    <img class="thumbnail" src="http://placehold.it/550x550"> 
</div> 
{% endfor %} 
+0

おそらくリストビューを使用することができます。これは[一般的な表示](https://docs.djangoproject.com/en/1.11/ref/class-based-views/generic-display/#listview)とテンプレートです同じ事を実現するために –

0

はあなたが

{% for product in products %} 

{% for products in Product %} 

からループのためにあなたを変更しようとしています

ループを処理するたびに、製品グループから1つの製品を表示する必要があるためです。

+0

ええ私はそれを変更しようとしましたが、変更はありませんでした。私は少しPythonには新しいですが、私が書いた方法は(モデル名の)いくつかの変数になっています。次に、モデル内の変数にアクセスするには、products.variableNameです。私はそれを正しくしましたか?ここでの調整では、それが反転された(モデルが最初に作成され、次に変数が作成された)。どのように動作しているかに違いはありません。 – Mike1982

関連する問題