我正在开发一个项目,管理员可以将团队分配给经理。但它不起作用,我不知道它将如何工作。因为它会引发一个错误,指出“精确查找的 QuerySet 值必须使用切片限制为一个结果”。
这是我的 model.py
class manager(models.Model):
name = models.CharField(max_length= 500)
designation = models.CharField(max_length= 500)
user = models.ForeignKey(User,on_delete=models.CASCADE)
class Meta:
permissions = [
("edit_task", "can edit the task"),
]
这是我的经理团队的views.py 文件
@login_required (login_url= 'have the url where it will go')
@permission_required('have the permission that is assigned by me')
def supervisor(request):
return render(request, 'manager/index-3.html')
def supervisor_team(request):
print(request.user.email)
email=request.user.email
obj= Create_Team.objects.filter(status='Accept',
managers=manager.objects.filter(user__email=email))
return render(request, "manager/accept_team.html", {"object": obj})
这是我的模板
<div class="body table-responsive">
<table class="table table-hover">
<thead>
<tr>
<th>S No.</th>
<th>COMPANY NAME</th>
<th>TEAM MEMBER</th>
<th>EMAIL</th>
</tr>
</thead>
<tbody>
{%for object in team%}
<tr>
<form id="form_id" method="POST" action = "#">
{% csrf_token %}
<th scope="row"> {{ forloop.counter }}</th>
<td>{{object.company_name}}</td>
<td>{{object.team_member}}</td>
<td>{{object.email}}</td>
<td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
I have no idea where i am wrong.
我认为这就是问题所在:
obj= Create_Team.objects.filter(status='Accept',
managers=manager.objects.filter(user__email=email))
如果您想按一位经理进行过滤,则必须使用get
代替filter
:
obj= Create_Team.objects.filter(status='Accept',
managers=manager.objects.get(user__email=email))
但如果您想按多个经理进行过滤,则需要使用__in
:
obj= Create_Team.objects.filter(status='Accept',
managers__in=manager.objects.filter(user__email=email))
还有你正在路过{"object": obj})
到 template 但在 templare 中你试图迭代team
。所以改一下就可以通过team
多变的:
return render(request, "manager/accept_team.html", {"team": obj})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)