【问题标题】:Can you set default values for request.get() (not post.get)?您可以为 request.get() (而不是 post.get)设置默认值吗?
【发布时间】:2012-01-05 18:08:17
【问题描述】:

我在一个提交按钮下有 2 个 HTML 提交字段,其中一个是可选的。我正在使用“get”方法来检索提交的数据,但我希望可选字段具有默认值,以防用户提交空表单。如果我不这样做,我会收到 MultiValueDictKeyError。

if request.method == 'GET': 
        # required
        name = request.GET['name']
        # optional
        color = request.GET['color']

我认为一个可能的解决方案是尝试/除了每个领域,但有没有更优雅的方法?我知道 get.post() 你可以做类似的事情

color = request.POST.get('color', False)

但这似乎不适用于 request.get()

有什么想法吗?

谢谢,

肥中微子

【问题讨论】:

  • 它肯定也适用于 request.GET 。 .get() 是所有类字典对象的方法。
  • 但我无法向 request.get() 添加默认值。如果我尝试这样做,我仍然会遇到同样的错误。
  • 您正在尝试将项目添加到 request.GET 中?我认为它不允许分配。您需要将其复制到新字典并执行此操作,但这似乎真的很复杂。你想做什么?

标签: django post get request default-value


【解决方案1】:

在这里感到困惑...request.get() 不起作用,但request.GET.get() 应该。您是打错字还是实际使用了request.get()

【讨论】:

  • 我实际上是在使用 request.get()。 request.GET.get('color', False) 给出“'instancemethod' 对象不可下标”错误。看起来我还有更多的调试要做
  • 确定你有request.GET.get('color', False)和括号()吗?不可下标表明您使用的是大括号[]
  • 让它工作。好答案!我最终将所有 [] 替换为 (),然后回到这里查看您的建议
猜你喜欢
  • 2020-02-21
  • 1970-01-01
  • 2019-08-24
  • 2014-10-15
  • 1970-01-01
  • 2021-07-22
  • 2011-05-28
  • 2011-04-05
  • 2018-03-30
相关资源
最近更新 更多