我有一个带2个按钮的表单。根据按钮单击用户是 采取不同的网址。 查看功能是:
friend_id = request.POST.get('selected_friend_id_list')
history = request.POST.get('statushistory')
if history:
print "dfgdfgdf"
return HttpResponseRedirect('../status/')
else:
return direct_to_template(request, 'friends_list.fbml',
extra_context={'fbuser': user,
'user_lastname':user_lastname,
'activemaintab':activemaintab,
'friends':friends,
'friend_list':friend_list})
表示模板:
<input type="submit" value="Calendar View" name="calendarview"/>
<input type="submit" value="Status History" name="statushistory"/>
</form
所以我的问题是页面没有重定向到网址。 如果我制作HttpResponseRedirect('../'),它会给我正确的页面 但网址没有改变。
当前页面=“friendlist / status / 所以提交表格后我的网址应该是frinedlist / list / 所以这应该工作HttpResponseRedirect('../ list /'),但url没有改变。 任何的想法? 我怎样才能解决这个问题 谢谢
答案 0 :(得分:2)
“所以我的问题是页面没有重定向到网址。如果我制作HttpResponseRedirect('../'),它会给我正确的页面,但网址不会改变。”
通过“URL”我猜你的意思是“浏览器中显示的URL”。如果您的问题非常精确,这会有所帮助。
首先,您必须提供绝对URL。 http://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpResponseRedirect
从标准(RFC 2616,第14.30节)中可以清楚地看出,绝对URL是必需的。某些浏览器可能会容忍相对URL。有些人没有。
其次,你不应该在你的程序中的任何地方使用相对URL。
您应该使用reverse。
from django.core.urlresolvers import reverse
def myview(request):
theURL= reverse('path.to.viewFunction')
return HttpResponseRedirect(theURL)
答案 1 :(得分:0)
为什么需要使用相对网址?你能不能使用绝对网址?