【问题标题】:Datetime input for current or future time当前或未来时间的日期时间输入
【发布时间】:2017-02-20 17:47:36
【问题描述】:

表单输入的默认值应该是当前时间。用户应该可以选择提供未来的时间,并且应该显示正常的日期时间字段。这可以在没有javascript的情况下实现吗?如何实现?

【问题讨论】:

  • 你的意思是,过去的日期不应该出现在日历中?
  • 否则会发生什么?我在考虑 django 验证器和 python 的 property() 函数,也许如果您在问题中添加更多细节,那么我们可以给您更好的答案
  • 这是您要找的吗? stackoverflow.com/questions/4941974/…
  • @themanatuf 这似乎是解决方案的一部分。但不包括用户不想在未来提供发布日期并立即发布问题的情况。

标签: html django forms django-forms


【解决方案1】:

您可以将输入留空并将其更改为后端的当前时间(或者将其设置为呈现模板时的当前时间并将过去的时间解释为“现在”)。但是,如果没有 JavaScript,您最多可以做的就是添加一个注释,即空输入表示当前时间。如果您想为当前时间制作某种精美的复选框并可能隐藏日期时间输入,您应该使用 JavaScript 来完成

【讨论】:

    【解决方案2】:

    您可以尝试在模板中使用<input name="date_input" type="date" id="date_input">

    视图也可以:

    from datetime import datetime
    # get a string from a POST like "10/2/2018"
    date_get = request.POST.get("date_input")
    
    # format of date/time strings; assuming dd/mm/yyyy
    date_format = "%d/%m/%Y"
    
    # create datetime objects from the strings
    date = datetime.strptime(date_get, date_format)
    
    # Check if we have a datetime
    print(date)
    datetime.datetime(2018, 2, 10, 0, 0)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-25
      • 1970-01-01
      • 2019-09-18
      • 1970-01-01
      • 2021-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多