我在Windows 7 x64上使用Django 1.3和Python 2.7.2。
我有这样的网址格式:
url(r'^(?P<club_id>\d+)/$', 'view_club')
从模式中我希望能够在我的模板中使用request.GET,以便能够基于此GET变量(club_id)为我的视图创建URL。我已经在线阅读了我能够做到的事情:
{{ request.GET.club_id }}
但是,这总是显示为空白。我无法弄清楚原因。我在默认上下文处理器列表中有请求上下文处理器。
感谢您的帮助。
答案 0 :(得分:1)
在您的示例中,club_id
不是GET参数,它是URL中路径的一部分。您的视图函数将club_id
作为参数,然后应将其放在上下文中,以便模板可以访问它。
例如,您的视图功能:
def view_club(request, club_id):
return render(request, "template_name.html", { 'club_id': club_id })
然后在你的模板中:
{{ club_id }}
答案 1 :(得分:0)
如果您在URL中传递变量 - 在本例中为club_id - 只需将其作为参数包含在请求旁边的视图函数中:
def get_club(request,club_id):
club = Club.object.get(pk=club_id)
return render_to_response('club.html', {'club': club})
现在在您的模板中,您可以访问{{club}}作为单独选择的对象,并执行{{club.name}}之类的操作。这也适用于具有多个对象的变量,您可以使用for循环进行迭代。