尝试这样做:
wishList = WishList.objects.get(pk=20)
matches = [val for val in Store.attribute_answers.all() if val in wishList.attribute_answers]
还有这个..。
'ManyRelatedManager' object is not iterable
两个字段都是多对多的,如何才能做到这一点呢?
发布于 2013-02-17 20:17:15
试一试
matches = [val for val in Store.attribute_answers.all() if val in WishList.attribute_answers.all()]
请注意WishList.attribute_answers.all()
末尾的括号。添加圆括号将调用all
函数以返回一个迭代值。
如果包含括号,则表示“只要这些值也在愿望列表答案中,就给我商店答案中的所有值”。如果没有括号,您请求的是商店答案中的所有值,这些值也在all
函数中,这是没有意义的。all函数不是可迭代的(它是一个返回可迭代的函数)
发布于 2013-02-17 20:16:29
听起来你要找的东西是
Store.attribute_answers.all()
发布于 2019-01-18 18:58:22
如果您在模板中执行此操作:
{% for room in study.room_choice.all %}
{{ room }}
{% empty %}
empty list!
{% endfor %}
更新
如果您有一个直通表,您可以像这样访问该表中的元素(作为详细的here) (注意,您使用的是直通表名称,小写,后缀为_set):
{% for roominfo in participant.roomchoicethru_set.all %}
{{ roominfo.room}} {{ roominfo.telnumber}}
{% endfor %}
https://stackoverflow.com/questions/14920735
复制相似问题