python - 我正在使用 python django 和 postgresql 为我的网站创建一个产品页面。我在比较两个表中的字段时遇到问题
问题描述
目前在数据库中我有两个表 1.Category(id, type) 和 2.Products(id,category,name,price)。我只想在“类别类型”与“产品类别”相同时显示产品。这就是我正在进行的操作,但它显示错误。
{% for i in types %}
{% for j in prods %}
{% if i.type== j.category %}
<div class="product-img">
<img src="{{j.disimage.url}}" alt="">
</div>
<div class="product-caption">
<h4><a href="#">{{j.name}}</a></h4>
<div class="price">
<ul>
<li>RS {{j.currentprice}}</li>
<li class="discount">RS {{j.originalprice}}</li>
</ul>
</div>
</div>
{% endif %}
{% endfor %}
{% endfor %}
此行显示错误。{% if i.type== j.category %}
这是models.py
from django.db import models
from datetime import datetime
from django.utils import timezone
class Category(models.Model):
type=models.CharField(max_length=30)
class Product(models.Model):
category=models.CharField(max_length=30)
name=models.CharField(max_length=30)
currentprice=models.IntegerField()
disimage=models.ImageField(upload_to='pics')
这是我得到的错误:无法解析剩余部分:'==' from 'i.type=='
请告诉我如何实现它。谢谢
解决方案
如果使用关系,它将在将来很有用。以下是如何使用 ManyToManyField 关系:
from django.db import models
from datetime import datetime
from django.utils import timezone
class Category(models.Model):
type=models.CharField(max_length=30)
class Product(models.Model):
category=models.ManyToManyField(Category, ...., related_name='products')
name=models.CharField(max_length=30)
currentprice=models.IntegerField()
disimage=models.ImageField(upload_to='pics')
在您的模板中:
{% for type in types %}
{% for each_product in type.products.all %}
<div class="product-img">
<img src="{{each_product.disimage.url}}" alt="">
</div>
<div class="product-caption">
<h4><a href="#">{{each_product.name}}</a></h4>
<div class="price">
<ul>
<li>RS {{each_product.currentprice}}</li>
<li class="discount">RS {{each_product.originalprice}}</li>
</ul>
</div>
</div>
{% endfor %}
{% endfor %}
通常如果我们不使用related_name,我们使用小写(模型名称)+ _set,如下所示:
type.product_set.all
推荐阅读
- google-cloud-platform - 如何查找 Google Cloud VM 集群的 Web 接口端口
- javascript - 在反应中将参数传递给组件实时更新
- python - TypeError:“WebElement”对象不可迭代
- scala - 当实现只是抛出新错误时,Scala Array apply 方法如何返回索引处的值
- c# - 读取文本文件 c# 并按大小分隔
- git - 使用 Dropbox 同步本地 git 存储库
- azure - 单个应用服务下可能有多个 Web 应用吗?
- sql - 想要获取有限数量的行并显示它,然后在下一页显示之后的行
- postgresql - 无法使用 sqlx 库 golang 触发 \copy 命令
- javascript - 如何使用 SharePoint 在网站中生成标记 A