通过模型过滤器渲染ManyToManyField-Django:“ ManyRelatedManager”对象不可迭代

时间:2020-11-06 14:20:32

标签: django django-models django-views django-templates

我尝试使用下面的代码在Django模板中呈现ManyToManyFields,但是它给出了一个错误,说'ManyRelatedManager' object is not iterable

template.html

{% for tag in order_data.tags %}
    {{Tags.tag}}
{% endfor %}

model.py 类Order(models.Model): ... slug = models.SlugField(blank = True,unique = True)

view.py

def order_post_view(request, customer_username, slug):
    ....
    order_data = Order.objects.get(slug=slug)
    required_dict = {
        ...
        'Order': order_data,
    }
    return render(request, "themes/order/order_post_details.html",required_dict)

1 个答案:

答案 0 :(得分:1)

首先(基于您的views.py),应在模板的for循环中使用Order(如果所需数据位于'Order': order_data中)。所以我想换行

{% for tag in order_data.tags %}
    {{Tags.tag}}
{% endfor %}

{% for tag in Order.tags.all %}
    {{tag.tag}}
{% endfor %}

可以解决您的问题。您还忘记了查询集管理器中的all部分。

相关问题