Django:循环一个表中的所有记录,然后从另一个表获取字段



我得到了两个称为Buy和Sell:的类模型

class Buy(models.Model):
category = models.ForeignKey(Category, on_delete=models.CASCADE)
image = models.FileField()
date = models.DateField()
buy_price = models.DecimalField(max_digits=6, decimal_places=2)
sell_price = models.DecimalField(max_digits=6, decimal_places=2)
def __str__(self):
return str(self.id)

class Sell(models.Model):    
item = models.OneToOneField(Buy, on_delete=models.CASCADE)
date = models.DateField()
discount = models.DecimalField(max_digits=6, decimal_places=2)
total_paid = models.DecimalField(max_digits=6, decimal_places=2)
buyer = models.ForeignKey(Buyer, on_delete=models.CASCADE)
def __str__(self):
return str(self.item)

在模板中,我想显示Sell表中的所有记录,以及Buy表中的image类属性。

下面,我的观点.py:

def sell(request):
buys = []
sells = Sell.objects.order_by('-id')
for sell in sells:
buys.append(Buy.objects.filter(id=str(sell.item)))
context = {'sells': sells, 'buys': buys}
return render(request, 'sell.html', context)

模板:

{% for sell in sells %}
<tr>
<td>{{ sell.item }}</td>
<td>{{ sell.date|date:'d-m-Y' }}</td>
<td>{{ buys[0].image}}</td>
<td>R$ {{ sell.discount }}</td>
<td>R$ {{ sell.total_paid }}</td>
<td>{{ sell.buyer }}</td>
</tr>
{% endfor %}

我想知道是否有一种简单的方法可以做到这一点。我的观点需要帮助。py!

您可以访问模板中与Sell相关的Buy实体

{{sell.item.image}}

如果image字段如图像名称所示,则可能需要将该字段更改为ImageField

然后显示图像的代码将是:

<img src="{{ sell.item.image.url }}">

(点击此处(

相关内容

最新更新