【问题标题】:HttpResponseRedirect django + facebookHttpResponseRedirect django + facebook
【发布时间】:2010-10-28 16:40:03
【问题描述】:

我有一个带有 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 

所以我的问题是页面没有重定向到 url 。 如果我制作 HttpResponseRedirect('../') 它会给我正确的页面 但 url 没有改变。

当前页面=“好友列表/状态/ 所以提交表单后,我的 url 应该是 friedlist/list/ 所以这应该可以工作 HttpResponseRedirect('../list/') 但 url 没有改变。 任何想法? 我怎样才能解决这个问题 谢谢

【问题讨论】:

标签: python django facebook


【解决方案1】:

为什么需要使用相对 url?不能用绝对网址吗?

【讨论】:

    【解决方案2】:

    “所以我的问题是页面没有重定向到 url。如果我让 HttpResponseRedirect('../') 它给了我正确的页面但 url 没有改变。”

    “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)
    

    【讨论】:

      猜你喜欢
      • 2011-08-14
      • 2018-11-15
      • 1970-01-01
      • 2015-07-03
      • 2012-01-06
      • 2011-11-26
      • 2015-06-14
      • 1970-01-01
      • 2016-09-27
      相关资源
      最近更新 更多