django 奇怪的 url 反应
Posted
技术标签:
【中文标题】django 奇怪的 url 反应【英文标题】:django weird url reaction 【发布时间】:2013-04-04 12:41:03 【问题描述】:我有这个奇怪的 url 反应。
这是我的观点.py
def user_edit(request):
user = User.objects.get(id=request.GET.get('userid'))
return render_to_response("editprofile.html",'user':user,context_instance=RequestContext(request))
这是我的表格。
<form action="/update_userprofile/?userid=user.id" ...
我的 urls.py
url(r'^update_userprofile/','home.views.update_userprofile')
但是一旦我发送表格,我就会收到错误:
Internal Server Error: /update_userprofile/on
on
来自哪里?我不明白这里发生了什么。
非常感谢。
【问题讨论】:
这是主要的 urlconf,@catherine 我实际上正在使用用户 ID 获得正确的用户,但在后台我收到 500 错误,上面说同样的错误。 @凯瑟琳 我必须逃避吗?在 uri 中? @凯瑟琳 您可以尝试在 settings.py 中将 Debug 设置为 True 吗? @catherine,我两个都用。因为我在帖子中有一些数据,并且在 get 中有用户 ID。是不是这个原因?? 【参考方案1】:好的,我试试你的代码。您没有提出您使用什么方法的问题。所以我尝试了 GET 和输出 User matching query does not exist
。我尝试了 POST,它现在可以工作了。
<form action="/update_userprofile/?userid=user.id" method="POST">
即使您在 url 中定义了 user id
,您仍然可以从方法 POST 中获取值。
更新:
你的代码很好,只需在你的表单中将方法更改为method=POST
【讨论】:
哦,所以我可以通过这种方式获取用户 ID:userid = request.POST.get('userid')
?
不,您的原始代码很好userid = request.GET.get('userid')
,只需将表单中的方法更改为POST
去掉 GET,只使用 POST
另外,您发布的网址应该更改,此处使用查询字符串不是最佳做法。如果您需要将用户 ID 发送到服务器,请将其包含在隐藏字段中。
"如果您需要将用户 ID 发送到服务器,请将其包含在隐藏字段中" => 或将其作为 url 的一部分...以上是关于django 奇怪的 url 反应的主要内容,如果未能解决你的问题,请参考以下文章