python中redirect_使用HttpResponseRedirect重定向到python中的另一个函数

我有一个功能:def drawback(request,problem_id)

我希望在这个函数的末尾,重定向到另一个从函数调用的页面

^{pr2}$

我试过了return HttpResponseRedirect(reverse('show',kwargs={'problem_id':10}))

return HttpResponseRedirect(reverse('show',kwargs={'problem_id':'10'}))

return HttpResponseRedirect(reverse('show',args=[10]))

return HttpResponseRedirect(reverse('show',args=(10))

我在其他网站找到的一切。但我收到了错误Exception Type: NoReverseMatch

Exception Value:

Reverse for 'show' with arguments '()' and keyword arguments '{'problem_id': '10'}' not found.

或者Exception Value: Reverse for 'show' with arguments '(u'10',)' and keyword arguments '{}' not found.

当我用一个按钮通过html调用它时,这个函数和页面就可以工作了。当我试图从缺陷重定向功能不工作。在

在网址.py在from django.conf.urls.defaults import *

from views import *

import settings

from django.conf import settings as rootsettings

urlpatterns = patterns('',

# authentication

(r'^start_auth', start_auth),

(r'^after_auth', after_auth),

# screens

(r'^problems/codelookup$', code_lookup),

# TESTING

(r'^problems/test$', test_message_send),

(r'^donnorsTool/$', problem_list),

(r'^problems/delete/(?P[^/]+)', archived_problem),

(r'^problems/edit/(?P[^/]+)', edit_problem),

(r'^problems/restore/(?P[^/]+)', restore_problem),

(r'^problems/new$', new_problem),

(r'^problems/archived$', archived_problems),

(r'^donnorsTool/show/(?P[^/]+)', show),

(r'^donnorsTool/consent/(?P[^/]+)/(?P[^/]+)', consent),

(r'^donnorsTool/withdraw/(?P[^/]+)/(?P[^/]+)', withdraw),

# static

## WARNING NOT FOR PRODUCTION

(r'^static/(?P.*)$', 'django.views.static.serve', {'document_root': rootsettings.SERVER_ROOT_DIR + settings.STATIC_HOME}),

)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Django 使用 `redirect` 进行定向时,可以通过 URL 参数或者 session 来传递数据。 1. 通过 URL 参数传递数据 在原视图函数将数据转换成 URL 参数,在定向时将参数带上即可。示例代码如下: ```python from django.urls import reverse from django.shortcuts import redirect def original_view(request): data = {'name': 'Alice', 'age': 18} url = reverse('redirected_view') + '?name={}&age={}'.format(data['name'], data['age']) return redirect(url) def redirected_view(request): name = request.GET.get('name') age = request.GET.get('age') # do something with name and age return HttpResponse('Hello, {}! You are {} years old.'.format(name, age)) ``` 2. 通过 session 传递数据 在原视图函数将数据存入 session ,在定向后的视图函数从 session 取出数据即可。示例代码如下: ```python from django.urls import reverse from django.shortcuts import redirect def original_view(request): data = {'name': 'Alice', 'age': 18} request.session['data'] = data return redirect(reverse('redirected_view')) def redirected_view(request): data = request.session.get('data') name = data.get('name') age = data.get('age') # do something with name and age return HttpResponse('Hello, {}! You are {} years old.'.format(name, age)) ``` 需要注意的是,如果使用 session 传递数据,需要在 `settings.py` 设置 session 的存储方式。例如: ```python SESSION_ENGINE = 'django.contrib.sessions.backends.db' ``` 以上是在 Django 使用 `redirect` 进行定向时传递数据的两种方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值