django - 对象不可迭代

标签 django django-templates

我遇到了一个奇怪的问题......在我处理其他一些 View 之前,这段代码工作正常,但现在,它不起作用了。

这是我的看法:

def showTickets(request, project_slug):
    project = Project.objects.get(slug=project_slug)
    tickets = Ticket.objects.get(project=project)
    payload = { 'project':project, 'tickets':tickets}
    return render(request, 'project/tickets.html', payload)

模板:

{% extends 'project/base.html' %}

{% block title %}Tickets: {{project.name}}{% endblock %}

{% block main %}

<div id="project-nav">
    <span><a href="/project/{{project.slug}}/">Tickets</a></span>
    <span><a href="/book/{{book.slug}}{{book.name}}">Docs</a></span>
    <span><a href="/project/{{project.slug}}/browse">Browser</a></span>
</div>
<div id="action-nav">
    {% block actions %}
    <span><a href="/project/{{project.slug}}/tickets/create">Create Ticket</a></span>
    <span><a href="/project/{{ project.slug }}/tickets/recent/">Recent Activity</a></span>
    <span><a href="/project/{{ project.slug }}/tickets/my/">My Tickets</a></span>
    {% endblock %}
</div>
{% for ticket in tickets %}


<div class="ticket">
    <div class="ticket-header">
        <div class="ticket-title">
            <a href="/project/ticket/{{ticket.pk}}">{{ticket.subject}}</a>
        </div>
        <div id="ticket-number">
            #{{ticket.pk}}
        </div>
        <div id="ticket-state">
            {{ticket.get_state_display}}
        </div>
        <div id="ticket-info">
            Reported by {{ticket.created_by}} | created: {{ticket.created_on }} | modified: {{ticket.modified_on}}
        </div>
    </div>
</div>
{% endfor %}
</div>

{% endblock %}

错误:

Template error:
In template c:........\project\tickets.html, error at line 19
   Caught TypeError while rendering: 'Ticket' object is not iterable

在我处理其他一些 View 之前,它工作正常......不确定为什么它现在不起作用?如果有人可以提供帮助,我将不胜感激!

最佳答案

project = Project.objects.get(slug=project_slug) 
tickets = Ticket.objects.get(project=project) 

这两行是您遇到麻烦的原因。它们不会返回可迭代对象(例如列表),而是返回一个根本不可迭代的对象。不使用 get,而是使用过滤器,它将返回一个列表。

关于django - 对象不可迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6514892/

相关文章:

Django Taggit - 标记关联未从自定义管理表单中保存

Django 休息框架 : POST on many to many

python - 在 Django 模板中迭代 dict 时遇到问题

python - 从 Django 模板访问 JSON 属性

Django 的身份验证表单总是无效

Django CMS 插件上下文与页面上下文

ruby-on-rails - 消息应该驻留在网站/网络应用程序的 Controller 或模型中吗?

python - 在没有 Django 其余部分的情况下使用 Django 模板和标签

html - Django 的什么功能可以使文本看起来更短?

django - 在Django模板中动态创建列表