【发布时间】:2020-06-12 05:33:39
【问题描述】:
当我尝试运行服务器时,我收到一个错误,它显示 TypeError: 'Organization' object is not iterable。我附上模型和视图以供参考。您能否检查并确定我收到错误的原因。
''' 模型.py
from django.db import models
# Create your models here.
class Organization(models.Model):
name = models.CharField(max_length=200, null=True)
date_created = models.DateTimeField(auto_now_add=True, null=True)
def __str__(self):
return self.name
class Ticket_status(models.Model):
name = models.CharField(max_length=200, null=True)
def __str__(self):
return self.name
class Ticket(models.Model):
ticket_id = models.CharField(max_length=200, unique=True)
orgname = models.ForeignKey(Organization, null=True, on_delete=models.SET_NULL)
status = models.ForeignKey(Ticket_status, null=True, on_delete=models.SET_NULL)
date_created = models.DateTimeField(auto_now_add=True, null=True)
def __str__(self):
return self.ticket_id
'''
views.py
'''
-----------
from django.shortcuts import render
from django.http import HttpResponse
from.models import *
# Create your views here.
def organization(request, orgname):
organization_name=Organization.objects.get(id=orgname)
organization_count=Organization.objects.get(id=orgname).ticket_set.all()
return render(request,'ticket\organization1.html',{'organization_name':organization_name,' organization_count': organization_count})
'''
模板 这是模板文件(ticket\organization1.html)。您能检查并确定我收到错误的原因吗? '''
{% extends 'ticket/main.html' %}
{% block content %}
<br>
<div class="container-fluid">
<div class="row">
<div class="col-sm-4">
<div class="card">
<div class="card-body">
<h5 class="card-title">Organization Name</h5>
<P> {% for t in organization_name %}
{{t.name}}
{% endfor %}
</P>
<p class="card-text"></p>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="card">
<div class="card-body">
<h5 class="card-title">Active Ticket</h5>
<p class="card-text">
{{ organization_count.count }}
</p>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="card">
<div class="card-body">
<h5 class="card-title">Closed Ticket</h5>
<p class="card-text">2.</p>
<!--a href="#" class="btn btn-primary">View</a-->
</div>
</div>
</div>
</div>
<div class="row">
<br>
<div>
<h2>On-Going Tickets</h2><br>
</div>
<table class="table table-hover">
<tr>
<th>S NO</th>
<th>Ticket ID</th>
<th>Organization</th>
<th>Ticket Status</th>
<br>
</tr>
{% for t in organization_name %}
<tr>
<td>{{t.Ticket_id}}</td>
<td>{{t.Ticket_id}}</td>
<td>{{t.organization}}</td>
<td>{{t.Ticket_Status}}</td>
</tr>
{% endfor %}
</table>
</div>
</div>
{% endblock %}'''
【问题讨论】:
-
欢迎来到 SO。您可以将您的模板添加到您的问题中吗?
-
在
ticket\organization1.html模板中,您可以遍历organization_count,但不能遍历organization_name。我猜你正在尝试迭代organization_name这是一个单一的组织实例。 -
或者你正在尝试渲染组织 {{organization_name}} ,它将是 {{organization_name.name}}
-
@Ben,有没有办法让组织成为多个实例,以便我可以获取数据。
-
organization_name 正在获取价值。当我为 organization_count 添加行时,它会抛出错误
标签: python django python-3.x django-models django-templates