在 GCBV 的 django ListView 中访问外键值
Accessing foreign key values in django ListView of GCBV
我有两个通过外键关联的模型,如下所示。 (此处仅显示重要字段。)
模型中:
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 中显示类别以及相关的定价详细信息。为此,我需要为每个类别对象设置相关的定价对象。最好和最有效的方法是什么?
您的代码没有问题,在模板中,您可以访问相关模型。在模板中列出类别时,您可以:
<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 with a 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 中显示类别以及相关的定价详细信息。为此,我需要为每个类别对象设置相关的定价对象。最好和最有效的方法是什么?
您的代码没有问题,在模板中,您可以访问相关模型。在模板中列出类别时,您可以:
<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 with a ListView。