Django数据查询:views查询出来一个list里怎么查询另一个?

问题可能有点低级,但是一时不知道怎么解决的,所以来求助。

现在有A、B两个model

class A(models.Model):
    A1 = models.CharField(max_length=30)
    A2 = models.CharField(max_length=30)

class B(models.Model):
    B1 = models.CharField(max_length=30)
    B2 = models.ForeignKey(A)

我在views.py里查询出A的一个list:

def(request):
    a_list = A.objects.all()
    return render_to_response('1.html',{'a_list':a_list})

然后在templates里调用:

{% for a in a_list}
    {{ a.A1 }}
    {{ a.A2 }}
{% endfor %}

接下我希望在这个循环内用A2字段筛选一个B的list该如何操作,大体像这样:

{% for a in a_list}
    {{ a.A1 }}
    {{ a.A2 }}
    {% for b in b_list%}
        {{ b.B1 }}
        {{ b.B2 }}
    {% endfor%}
{% endfor %}
阅读 4k
1 个回答

在你想要实现的templates里,已经出现错误了:不可能要B2也写出来的。至于获得对应的B的列表,

A.b_set.all()

就可以了。官方文档的教程里第一篇有相关内容。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题