【问题标题】:django weird url reactiondjango 奇怪的 url 反应
【发布时间】: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。是不是这个原因??

标签: python html django django-urls


【解决方案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 的一部分...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-03
  • 1970-01-01
  • 1970-01-01
  • 2011-07-15
  • 1970-01-01
  • 2011-11-05
  • 2019-08-12
相关资源
最近更新 更多