Django-通过URL将属性从utils.py传递到模板



我将属性从utils.py传递到模板时失败

  • 将属性作为URL传递,并在模板中读取(通过URL,因为我不太清楚(

utils.py正在创建一个月历表,并在一个月的每一天循环检查每个房间每天有多少空位可供预订(这部分很好(。我正试图将传递到每日日程模板中。只有当我添加属性时,此部分才会运行。只需每天链接到同一个模板。

utils.py 
# check available slots per room for that day / return room_name and free_slots
for rooms in rooms_list:

slot_calculation = 5 - Room.objects.filter(event__room = rooms, event__start_time__day=day).count()
d += f'<br>{rooms.get_roomlist} {slot_calculation}</li>'
# create a hyperlink for each day cell to template calendar_rooms
url = reverse("cal:calendar_rooms") <--- #how do I pass the attribute right here?
return f'<td><span class="date"><a href="{url}">{day}</a></span><ul> {d} </ul></td>' 

只要我不添加<attr>在urls.py 中

urls.py
url(r'^calendar_rooms/<attr>/$', views.cal_rooms, name='calendar_rooms'),

View.py应该接受如下输入http://localhost:800/calendar_rooms/20200101/但我得到的只是一个404-使用hot_django.urls中定义的URLconf,django尝试了这些URL模式,顺序如下:我也尝试了HttpResponse。

view.py 
# how do I pass an attribute?
def cal_rooms(request, attr):    
context = {
'attr': attr,
}
return render(request, 'cal/calendar_rooms.html', context)

我尝试过各种各样的解决方案,但都无济于事。我不确定通过URL传递属性是否正确。

自我回答:刚刚将urls.py中的url切换到路径,它现在正在运行。

https://docs.djangoproject.com/en/3.1/topics/http/urls/我使用了一个不推荐使用的代码

最新更新