Python Django:reverse()找不到给定args/kwargs的视图
有几个帖子与我的问题有关。但是,似乎没有一个解决以下问题: 我在myapp/url.py中定义了URL:Python Django:reverse()找不到给定args/kwargs的视图,python,django,Python,Django,有几个帖子与我的问题有关。但是,似乎没有一个解决以下问题: 我在myapp/url.py中定义了URL: app_name = "myapp" urlpatterns=[ url(r'^$', views.index, name="index"), url(r'^adduser/$', views.addUser, name="adduser"), ] 以及myapp/views.py中的相应视图: def index(request, status_msg=None,
app_name = "myapp"
urlpatterns=[
url(r'^$', views.index, name="index"),
url(r'^adduser/$', views.addUser, name="adduser"),
]
以及myapp/views.py中的相应视图:
def index(request, status_msg=None, error_msg=None):
return HttpResponse(render(request, "myapp/index.html",
context={"error_message":error_msg, "status_message":status_msg}))
def addUser(request):
try:
uname=request.POST["user_name"]
except KeyError:
url = reverse("myapp:index", args=(None, "No user name specified."))
return HttpResponseRedirect(url)
# ... adding user to db ...
url = reverse("myapp:index", args=("Added user '%s'"%uname,))
return HttpResponseRedirect(url)
将参数从addUser中的重定向传递到索引的任何一种变体都会产生类似的错误
Reverse for 'index' with arguments '(None, u'No user name specified.')' not found. 1 pattern(s) tried: [u'myapp/$']
我不明白我做错了什么。似乎找到了索引视图,但未识别该视图以允许请求之外的任何参数
使用kwargs而不是args也没有帮助
非常感谢您的任何建议。已经谢谢你了 您的URL似乎不支持参数,即正则表达式中捕获的组。因此,您应该只使用:
reverse("myapp:index")
检查文档中的反向函数。但是索引URL不带任何参数。为什么你要传递一些?即使传递了,没有指定用户名也不是你会在URL中传递的那种东西。我似乎有一些误解。因此,如果url不应该捕获任何arg或kwarg,则无法将它们传递给视图?您知道,在addUser之后,我想返回索引并显示相应的消息。在执行简单的HttpResponseRedirectorReverseMyApp:index之前直接编辑请求的POST字典是否合理,并在index中添加一些代码以检查这些POST值是否存在?如果不希望在URL中传递数据,希望数据从何而来?重定向是指向浏览器请求新URL的指令。视图的参数仅来自URL。如果您想在请求之间传递其他信息,请使用会话。谢谢您的建议。那么,您将如何将消息传递回索引?一种方法是使用“我将对此进行研究”。谢谢