【问题标题】:Render ManyToManyField by model filter - Django: 'ManyRelatedManager' object is not iterable通过模型过滤器渲染 ManyToManyField - Django:'ManyRelatedManager' 对象不可迭代
【发布时间】:2020-11-06 14:20:32
【问题描述】:

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

template.html

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

model.py 类订单(模型。模型): ... 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)

【问题讨论】:

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


    【解决方案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 部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-16
      • 2021-04-19
      • 2019-10-15
      相关资源
      最近更新 更多