如何访问Django中的Foreign Fields

ego6inou  于 2023-05-23  发布在  Go
关注(0)|答案(1)|浏览(141)

我是Django的初学者。我有一组在模型中定义了关系的表,我希望在前端检索链接的值。我不知道如何做到这一点,并希望得到帮助。
我现在可以看到这样的东西,其中1是货币表中货币EUR的键:

Spend Amount | Spend Currency
10           | 1

我希望它看起来像这样:

Spend Amount | Spend Currency
10           | EUR

型号

class Currency (models.Model):
    currCode = models.CharField('Currency',max_length=3)
    currName = models.CharField('Name',max_length=100)

class Spend (models.Model):
    spendAmount = models.DecimalField('Amount', max_digits=12,decimal_places=2)
    spendCurrency = models.ForeignKey(Currency)

浏览次数

from .models import Spend

def all_spends(request):
    spend_list = Spend.objects.all()
    return render(request,
                  'spends/spend_list.html',
                  {'spend_list': spend_list})

HTML模板

{% for spend in spend_list %}
            <tr>             
                <th>{{ spend.spendAmount }}</th>
                <th>{{ spend.spendCurrency }}</th>
            </tr>
{% endfor %}
zc0qhyus

zc0qhyus1#

直接从模板中,您可以使用外键字段直接访问Currency模型,以显示所需的字段,在您的情况下,Currency.currName将显示:

Spend Amount | Spend Currency
10           | EUR

在HTML模板中

<table>
    </thead>
        <tr>
            <th>Spend Amount</th>
            <th>Spend Currency</th>
        </tr>
    </thead>
    <tbody>
{% for spend in spend_list %}
    <tr>             
        <td>{{ spend.spendAmount }}</td>
        <td>{{ spend.spendcurrency.currName }}</td>
    </tr>
{% endfor %}
    </tbody>
</table>

请注意,它还存在一个Django“相关管理器”或“反向关系”来访问来自货币的支出。例如:

{{  my_currency.spend_set.spendAmount }}

相关问题