Django在网页上显示模型

时间:2017-11-21 20:01:27

标签: python html django model-view-controller

我不知道我哪里出错了。我正在使用Django / HTML / Foundations创建一个Web商店,我无法让数据库中的产品显示在网页上。我知道他们在数据库中,因为当我进入管理页面时,他们会出现。

这是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 个答案:

答案 0 :(得分:2)

您的视图需要使用products参数向模板提供context信息。 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 %}

答案 1 :(得分:0)

您是否尝试过从

更改for循环
{% for products in Product %}

{% for product in products %}

因为您希望每次处理循环时都显示产品组中的单个产品。