我有一个模板,它显示了一个宿舍的详细信息和一个“房间号码”列表
问题:
我试着把“房间号码”作为每个具体宿舍详情页面的链接(见上面的截图)。寝室详细信息页面的格式如下:房间/<;int:pk> 在my url.py中指定
我在网上搜遍了,找不到我该从哪里开始。Django和Python新手在这里,所以请容忍我
url.py>
urlpatterns = [
path('', views.index, name='index'),
path('list/', views.DormsListView.as_view(), name='dorms'),
path('list/<int:pk>', views.DormsDetailView.as_view(), name='dorm-detail'),
path('rooms/', views.DormsRoomView.as_view(), name='rooms'),
path('rooms/<int:pk>', views.DormsRoomsDetailView.as_view(), name='rooms-detail'),
]
Views.py(domsDetailView)>
class DormsDetailView(LoginRequiredMixin, generic.DetailView):
model = Dorm
def get_context_data(self, *args, **kwargs):
context = super().get_context_data(*args, **kwargs)
context['room_numbers'] = ", ".join(self.object.dormroom_set.values_list('room_number', flat=True))
return context
Views.py(寝室详细视图)>
class DormsRoomsDetailView(LoginRequiredMixin, generic.DetailView):
model = DormRoom
宿舍详情.html>
<div>Rooms: {{ room_numbers }}</div>
不要把你的列表变成一个带有
", ".join()
的字符串,你能把它作为一个列表吗?在Dorm_Detail.html
中,您可以在它们上面循环将所有房间号显示为单独的链接。希望我能正确理解这个问题
我会直接在模板里做。返回房间号列表,而不是带逗号的字符串,然后在模板中构建逻辑,包括链接
类似于:
然后,在模板中:
{% if not forloop.last %},{% endif %}
部分只是在房间编号之间添加逗号,就像您在视图中看到的那样。但是当它是最后一次迭代时,它不会打印逗号相关问题 更多 >
编程相关推荐