django - Django HttpResponseRedirect 和 NoReverseMatch
问题描述
我正在尝试重定向到一个新的表单页面,该页面的字段会自动填充从视图函数发送的数据。
我的 urls.py 是:
url(r"user_dashboard/NewRequest/([\{.*\}])", views.request_form, name = "NewRequest")
发送数据的视图函数位于:
url(r"user_dashboard/NReq", views.request_request, name="NReq"),
它调用了上面的 url。
我的视图函数的返回语句是:
return HttpResponseRedirect(reverse(request_form, kwargs={"device_type":devicetype}))
但是,我收到以下错误:
NoReverseMatch at /user_dashboard/NReq
Reverse for 'inventory_management_app.views.request_form' with keyword arguments '{u'device_type': u'Laptop'}' not found. 1 pattern(s) tried: ['user_dashboard/NewRequest/([\\{.*\\}])']
Request Method: POST
Request URL: http://127.0.0.1:8000/user_dashboard/NReq
Django Version: 1.11.13
Exception Type: NoReverseMatch
Exception Value:
Reverse for 'inventory_management_app.views.request_form' with keyword arguments '{u'device_type': u'Laptop'}' not found. 1 pattern(s) tried: ['user_dashboard/NewRequest/([\\{.*\\}])']
Exception Location: C:\Anaconda2\lib\site-packages\django\urls\resolvers.py in _reverse_with_prefix, line 497
Python Executable: C:\Anaconda2\python.exe
Python Version: 2.7.14
Python Path:
['E:\\inventory management\\inventory_management_service',
'C:\\Anaconda2\\python27.zip',
'C:\\Anaconda2\\DLLs',
'C:\\Anaconda2\\lib',
'C:\\Anaconda2\\lib\\plat-win',
'C:\\Anaconda2\\lib\\lib-tk',
'C:\\Anaconda2',
'C:\\Users\\Jaimik Jain\\AppData\\Roaming\\Python\\Python27\\site-packages',
'C:\\Anaconda2\\lib\\site-packages',
'C:\\Anaconda2\\lib\\site-packages\\win32',
'C:\\Anaconda2\\lib\\site-packages\\win32\\lib',
'C:\\Anaconda2\\lib\\site-packages\\Pythonwin',
'C:\\Anaconda2\\lib\\site-packages\\pywinpty-0.5-py2.7-win-amd64.egg']
Server time: Wed, 6 Jun 2018 07:48:44 +0000
谁能告诉我上面的代码有什么问题?
解决方案
url(r"user_dashboard/NewRequest/([\{.*\}])", views.request_form, name = "NewRequest")
而不是URL中的以下正则表达式:
尝试使用re
组名:
url(r"user_dashboard/NewRequest/(?P<device_name>\w.+)", views.request_form, name = "NewRequest")
确保您将 device_name 作为视图中的默认参数
def request_form(request,device_name=''):
'''
推荐阅读
- javascript - react.js 同步调度和执行动作
- python - 为什么通过 pytrends 下载的数据与使用 Google 趋势网站下载的数据大不相同?
- sql-server - 在 SQL Server 中将 hh:mm 转换为分钟
- java - 在java中与mysql建立连接时获取java.lang.NullPointerException
- ruby-on-rails - 加载“sqlite3”Active Record 适配器时出错。当我在 Heroku 中部署时
- excel - 如何在 Powerpivot 中显示过去 n 个月?
- javascript - 如何开玩笑地在异步函数中抛出错误
- r - Stickplot 向量不能准确地显示方向
- swift - UINavigationController 后退按钮不会结束 UITextField 编辑
- python - Python 套接字 - 带有 base10 的 int() 的无效文字: