【问题标题】:DJango How to select certain item from database table in htmlDJango 如何从 html 中的数据库表中选择某些项目
【发布时间】:2023-01-14 18:32:56
【问题描述】:

我有一个从 Products 表中获取条目的商店页面。 这会根据表中的数量以相同的格式无限次地显示产品。

`

{% for product in products %}
<div class="container2">
  <div href="item" class= 'product-item'>
    <div class= 'image-cont'>
      <a href="item"><img class='product-image'src = '{{product.product_picture.url}}' alt="" ></a>
    </div>
    {% if product.offer != 0 %}
    <div class= 'offer-banner' >
      <a href="item">Special Offer</a>
    </div>
    {% endif %}
    </div>
      <div href="item" class="product-content">
        <div href="item" class="product-title">
          <a href="item" >{{product.name}}</a> 
        </div> 
        <div class="product-price">
          <a href="item" >${{product.price}}</a> 
        </div>
        <br>
        <div class="product-desc">
          <a href="item" >{{product.desc}}</a> 
        </div> 
        <br>
        <div class="product-userpfp">
          <a href="#" ><img src='{{product.userpfp.url}}'></a> 
        </div> 
        <br>
        <div class="product-poster-name">
          <a href="#" >{{product.username}}</a> 
        </div> 
        <br>
      </div>
    </div>
  </div>
</div>
{% endfor %}

`

我希望能够单击产品中的任何产品并获得包含我单击的特定项目的页面。这是我的项目页面。

`

{`% extends 'base.html' %}
{% load static %}

{% block css %}
<link rel="stylesheet" href= "{% static 'css\item.css' %}" >
{% endblock %}

{%block content%}
{% load static %}

<h1>Item</h1>
<h3>{{item.name}}</h3>
{% endblock %}`

`

问题应该在 view.py 文件里面

`

def item(request):
  item = Product.objects.select_related()
  return render(request, "item.html", {"item": item })

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

`

商店功能有效。但是项目功能不起作用。我的猜测是“select_related”可能不是正确使用的工具。

我尝试将 select_related 工具更改为几个不同的工具,但担心我会以某种方式破坏我的表,所以我正在寻求帮助,谢谢。

【问题讨论】:

    标签: python django object django-views jinja2


    【解决方案1】:

    假设您在单击产品时将 product_id 传递给项目页面,则需要将该 product_id 传递给项目函数并将代码重写为,

    def item(request):
      item = Product.objects.select_related('item').get(id=product_id)
      return render(request, "item.html", {"item": item })
    

    【讨论】:

      猜你喜欢
      • 2014-08-24
      • 2015-02-11
      • 1970-01-01
      • 2019-09-19
      • 1970-01-01
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多