django - 在 GCBV 的 django ListView 中访问外键值
问题描述
我有两个由外键关联的模型,如下所示。(此处仅显示重要字段。)
在模型中:
class Category(models.Model):
name = models.CharField(max_length=50, unique=True)
description = models.TextField()
...
class Price(models.Model):
category = models.ForeignKey(Category) # referred to above model
sub_type = models.CharField(max_length=4, choices=CHOICE_SUB_TYPE)
price = models.DecimalField()
...
我将在 ListView 中显示类别以及相关的定价详细信息。为此,我需要为每个 Category 对象设置相关的定价对象。最好和最有效的方法是什么?
解决方案
您的代码很好,在模板中,您可以访问相关模型。在模板中列出类别时,您可以:
<ul>
{% for cat in categories %}
<li>{{ cat.name }}</li>
<ul>
{% for price in cat.price_set.all %}
{{ price.price }}
{% endfor %}
</ul>
{% endfor %}
</ul>
为了在显示价格详细信息时显示类别,您可能希望将Single object Mixin 与 ListView 一起使用。
推荐: 相关对象参考。
推荐阅读
- node.js - Typescript 错误 1062:“类型在其自己的 'then' 方法的实现回调中被直接或间接引用。”
- python - 如何将多维数组从C传递到嵌入python函数
- raku - 在类似哈希的事物中重复且唯一
- angular - 如何重定向到Angular Universal中的动态外部URL?
- react-native - 世博相机没有显示相机看到的东西
- kotlin - 使用 randomUUID 时的 UUID 冲突
- influxdb - InfluxDB 1.7.2 - 随着时间的推移 Top X
- html - 仅在与主体形状接触时产生粘性效果
- ios - TableView根据单元格宽度水平滚动
- javascript - 在哪里存储访问令牌以供前端使用