當我遍歷一個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