当我遍历一个Prize.objects.all()集合时,我试图从PrizeItem
获得quantity
值,但它似乎只引用GameItem模型,而不引用提供访问中间PrizeItem
属性。在穿透关系中获取中间模型的值
我该如何访问穿透模型的属性?
机型:
class GameItem(models.Model):
'...'
class Prize(models.Model):
'...'
item = models.ManyToManyField(GameItem, through='PrizeItem')
class PrizeItem(models.Model):
#relations
game_item = models.ForeignKey(GameItem, on_delete=models.CASCADE)
prize = models.ForeignKey(Prize, on_delete=models.CASCADE)
#Item details
quantity = models.IntegerField(null=True, blank=True, default=1)
浏览次数:
def gameprizes(request):
prizes=Prize.objects.all()
context={'prizes':prizes}
return render(request, "the-app/game-prizes.html", context)
模板:
{% if prize.item.all %}
<table class="table table-condensed">
<tbody>
{% for prize_item in prize.item.all %}
<tr>
<td>{{ prize_item.type }}</td><td>{{ prize_item.name }} {{ prize_item.quantity }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
你如何使用查询集?你的循环是什么样的? – karthikr
已更新,以显示更详细的信息 – Pipsqweek
理想情况下,我希望能够在不需要进行大量查询或进行复杂连接(也是征税)的情况下提供“数量” – Pipsqweek