在 Django 视图中处理多个 POST 请求
Posted
技术标签:
【中文标题】在 Django 视图中处理多个 POST 请求【英文标题】:Dealing with multiple POST requests in Django views 【发布时间】:2014-09-04 10:27:10 【问题描述】:我想知道是否可以在 Django 视图方法中处理不同的 POST 请求。比如下面的代码:
def my_view(request):
if request.method == "POST":
if request.POST['value_one']:
# Do stuff here
elif request.POST['value_two']:
# Do stuff here
elif request.POST['value_three']:
# Do stuff here
else:
# Do something else
是否可以在 Django 视图中执行类似的操作?如果不是,那么处理这种情况的最佳方法是什么?
【问题讨论】:
是的,这是可能的。当表单中有多个按钮时,这是一种常见的情况。 继续,这是用 if 语句完成的正常操作 我已经尝试过了,我得到一个“MultiValueDictKeyError”错误。 【参考方案1】:从技术上讲,这不是“处理多个发布请求”(这是一种废话——一个视图一次只能处理一个请求——无论采用何种方法——一次),而是“处理来自发布请求的不同值” (或来自 GET 请求 FWIW,它没有太大变化)。
现在回答您的问题:是的,当然这是可能的 - 如果您自己尝试过,您会发现 - 并且是一种相当常见的模式。当某些键不是请求正文 (POST) 或查询字符串 (GET) 的一部分时,您可能只想使用 request.POST.get("whatever", default)
来避免处理 KeyError
。
【讨论】:
以上是关于在 Django 视图中处理多个 POST 请求的主要内容,如果未能解决你的问题,请参考以下文章