Django 'model' 对象不可迭代

标签 django django-models django-views

我有一张表,上面显示了注册的员工。我想根据他们的数据库生成一个简单的 HTML 页面,其中包括他们的姓名、ID、名称等。
为此,我将一个 id 传递给 View ,以便它可以获取相应用户的详细信息并显示给我看。一切正常,直到出现错误 对象不可迭代 .这是我的代码report.html

{% if emp_item %}
 {% for some in emp_item %}
    <title> {{ some.employee_name }} Report</title>

    <h3>{{ some.employee_name }}</h3>

    <table style="width:30%" border="4">


        <td>{{some.id}}</td>
        <td>{{some.Annual_leave}} </td>
        <td>{{some.Sick_leave}} </td>
        <td>{{some.allowed}} </td>

        </table>

{% endfor %}

<h2>No User</h2>
{% else %}
{% endif %}

view.py
@staff_member_required  # for admin login required
def report(request, id):
    emp_item = Employee.objects.get(id=id)
    context = {'emp_item': emp_item}
    return render(request, 'projectfiles/report.html', context)
urls.py
    url(r'^(?i)Rejectleaves/$', views.rejected_leave_show,
        name='Reject_show'),  # user leaves

    url(r'^(?i)report/(?P<id>\d+)$', views.report,
        name='Report'),  # user Report
models.py
class Employee(models.Model):

    allowed = models.BooleanField(default=True)
    employee_name = models.OneToOneField(User, on_delete = models.CASCADE)
    employee_designation = models.CharField(max_length = 5)
    employee_department = models.CharField(max_length = 5)
    Annual_leave = models.PositiveSmallIntegerField(default=5)
    Sick_leave = models.PositiveSmallIntegerField(default=5)
我想根据他们所做的过程查看每个用户的数据。

最佳答案

更改 Employee.objects.get(id=id)Employee.objects.filter(id=id)filter() 总是会给你一个 QuerySet” - 它是可迭代的get() - 返回单个对象,它不可迭代

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

相关文章:

带自定义included_tags的Django模型继承

python - Django --CSRF token 缺失或不正确

python - Django 找不到 psycopg2 模块

django - 如何在 Python 中创建一个 8 位的唯一 ID?

python - 在 Django 中批量创建相关模型

python - 一个只有多对多字段的 Django 模型?

django-django-taggit表单

python - 在 Django CreateView form_valid 方法中访问请求变量

python - 多个 Django 版本 - virtualenv 仍然是一个不错的选择吗?

django - 如何使用Django 1.3日志记录字典配置来设置SysLogHandler