0

我想在一个 QuerySet 中组合来自两个不同模型的属性,这些模型与 ForeignKey 连接,以将它们一起显示在一个表中。我试图将它们与 select_related 结合起来,但是,模型 B 的属性没有出现在我的 QuerySet 中,我也不能在我的表中显示它。我究竟做错了什么?如何将属性“名称”从模型 A 添加到我的 QuerySet?你能帮我么?提前致谢

视图.py

A.objects.select_related('b_id').filter(a_id__in='abcde')

模型.py

class B(models.Model):        
    b_id = models.CharField(max_length=20, primary_key=True, unique=True)
    name = models.CharField(max_length=80)
    size = models.CharField(max_length=10)

class A(models.Model):
    a_id = models.CharField(max_length=20, primary_key=True, unique=True)
    text = models.CharField(max_length=254)
    b_id = models.ForeignKey(B)

.html

{% for entry in set %}
 <tr> <td> {{entry.a_id}} </td>
      <td> {{entry.text}} </td>
      <td> {{entry.name}} </td></tr>
4

2 回答 2

0

select_related()不结合来自两个模型的字段。您应该使用此代码来显示name外键的属性b_id

{{entry.b_id.name}}
于 2015-01-14T15:38:39.480 回答
0

据我了解,您需要通过外键显示与 A 类相关的 B 模型实例。

你的意见.py:

    A.objects.filter(a_id__in='abcde')

你的html:

    {% for entry in set %}
        <tr> <td> {{entry.a_id}} </td>
        <td> {{entry.b_id.text}} </td>
        <td> {{entry.b_id.name}} </td></tr>
于 2015-01-15T05:49:56.977 回答