我使用prefetch_related来获取反向关系行。一切都很好,唯一的例外是我只得到很多关系中的一个。通过例子更好地解释。
型号:
class Tasks(models.Model):
#...
class TaskResponsiblePeople(models.Model):
task = models.ForeignKey('Tasks', related_name='task_responsible_people')
查看:
def showTasks(request):
tasks = Tasks.objects.prefetch_related('task_responsible_people').all()
return render_to_response('task_management/task_list.html',
{'responsible_people_form':responsible_people_form,
'tasks':tasks},
context_instance=RequestContext(request))
{% for task in tasks %}
<tr>
<td>
<ul>
{% for resp in task.task_responsible_people.all %}
<li>{{resp.auth_user.first_name}}</li>
{% endfor %}
</ul>
</td>
</tr>
{% endfor %}
这里的问题是,对于其中一项任务,我有几个负责任的人,但仍然只能使用它们。是因为我必须使用前缀&#34; _set&#34;代码中的某个地方?如果我这样做,我最终会收到一条错误消息