【问题标题】:How do set default values in django for an HttpRequest.GET?如何在 Django 中为 HttpRequest.GET 设置默认值?
【发布时间】:2010-05-04 08:02:52
【问题描述】:

我有一个基于默认日期显示数据的网页。然后,用户可以通过使用日期选择器选择日期并单击提交按钮来更改他们的数据视图。我已经设置了一个变量,因此如果没有选择日期,则使用默认日期....那么问题是什么?如果用户尝试在没有参数的情况下输入 url 页面,就会出现问题......就像这样:

http://mywebpage/viewdata (example A)

而不是

http://mywebpage/viewdata?date= (example B)

我尝试使用:

if request.method == 'GET':

但显然,即使示例 A 仍然返回 true。我确定我犯了一些明显的初学者错误,但无论如何我都会问......除了将url传递给字符串并检查字符串是否有“?date =”之外,还有更简单的方法来处理示例A吗?

【问题讨论】:

    标签: django url get request default


    【解决方案1】:

    您提到您在某处定义了默认值。

    而不是做这样的事情:

    if 'date' in request.GET:
        date = request.GET['date']
    else:
        date = '2010-05-04'
    

    这样做更容易:

    date = request.GET.get('date', '2010-05-04')
    

    【讨论】:

      【解决方案2】:

      我不太明白你的问题 - 更多代码会有所帮助 - 但你不需要这样做吗:

      if 'date' in request.GET:
      

      【讨论】:

      • 丹尼尔·罗斯曼……你这个男人!这正是我所需要的!谢谢!
      【解决方案3】:

      【讨论】:

      • 没有。 POST 用于提交更改数据或具有其他副作用的提交,而不仅仅是更改该数据的视图。
      • @Daniel,是的,但听起来他想区分用户点击提交和 GET。或者,也许我没有得到它。无论如何,请求-响应文档对各种场景都有足够的信息。
      猜你喜欢
      • 2021-01-22
      • 1970-01-01
      • 2016-05-04
      • 2012-11-18
      • 1970-01-01
      • 1970-01-01
      • 2021-09-21
      • 2011-04-26
      相关资源
      最近更新 更多