如何从我的 Django 模板中的上下文中检索列表
How can I retrieve a list from context in my django template
我有一个模型房间的详细视图,在 get_context_data 方法中,我将来自第二个 model:Worker
的另一个对象查询集添加到我的上下文中
class RoomView(DetailView):
template_name = 'detail.html'
model = Room
context_object_name = "room"
def get_object(self):
object = super(RoomView, self).get_object()
if not self.request.user.is_authenticated():
raise Http404
return object
def get_context_data(self, **kwargs):
context = super(RoomView, self).get_context_data(**kwargs)
context['workers'] = Worker.objects.all()
print context
return context
上下文看起来像:
{'workers': [<Worker: Michael Shchur, Backend>, <Worker: Toto Kutunyo, Backend>], u'object': <Room: Backend, id=1>, 'room': <Room: Backend, id=1>, u'view': <map.views.RoomView object at 0x7f257811dc10>}
但是我无法使用 {{room.workers}} 或
访问这个添加的对象列表
{% for worker in room.workers %}
<tr>
<td>{{worker.id}}</td>
<td>{{worker.first_name}}</td>
<td>{{worker.last_name}}</td>
<td>{{worker.email}}</td>
</tr>
{% endfor %}.
请多多指教,我能做吗
提供的上下文有一个键 workers
因此您需要使用此名称而不是 room.workers
:
{% for worker in workers %}
<tr>
<td>{{worker.id}}</td>
<td>{{worker.first_name}}</td>
<td>{{worker.last_name}}</td>
<td>{{worker.email}}</td>
</tr>
{% endfor %}.
我有一个模型房间的详细视图,在 get_context_data 方法中,我将来自第二个 model:Worker
的另一个对象查询集添加到我的上下文中class RoomView(DetailView):
template_name = 'detail.html'
model = Room
context_object_name = "room"
def get_object(self):
object = super(RoomView, self).get_object()
if not self.request.user.is_authenticated():
raise Http404
return object
def get_context_data(self, **kwargs):
context = super(RoomView, self).get_context_data(**kwargs)
context['workers'] = Worker.objects.all()
print context
return context
上下文看起来像:
{'workers': [<Worker: Michael Shchur, Backend>, <Worker: Toto Kutunyo, Backend>], u'object': <Room: Backend, id=1>, 'room': <Room: Backend, id=1>, u'view': <map.views.RoomView object at 0x7f257811dc10>}
但是我无法使用 {{room.workers}} 或
访问这个添加的对象列表{% for worker in room.workers %}
<tr>
<td>{{worker.id}}</td>
<td>{{worker.first_name}}</td>
<td>{{worker.last_name}}</td>
<td>{{worker.email}}</td>
</tr>
{% endfor %}.
请多多指教,我能做吗
提供的上下文有一个键 workers
因此您需要使用此名称而不是 room.workers
:
{% for worker in workers %}
<tr>
<td>{{worker.id}}</td>
<td>{{worker.first_name}}</td>
<td>{{worker.last_name}}</td>
<td>{{worker.email}}</td>
</tr>
{% endfor %}.