【问题标题】:How to work with time picker widget in Django template?如何在 Django 模板中使用时间选择器小部件?
【发布时间】:2012-08-11 04:28:52
【问题描述】:

我正在开发一个基于 Django 的应用程序,我卡在某个地方,我想在我的数据库中保存用户给出的时间和天数(周一至周日)。

用户将从Time picker widget 或任何其他方式中选择一个时间,但它会返回07 : 30 格式。

用户还可以从任何选择器或任何其他方式(用户可以选择多天)中选择日期,并将其保存到数据库中。

我尝试使用 Django-Model 字段:

timestamp = Models.DatetimeField()

并使用 Django 模型表单传入 Django-template,但它显示了一个文本字段(这没有任何意义)。

如果无论如何都可以得到13:45格式和mon,tue,wed格式的时间,那么我也可以将它保存到数据库中的CharField()中。

我无法弄清楚以上两种情况的解决方案。最好的选择是什么?

Java 脚本应该可以吗? (但我不擅长 java 脚本)

【问题讨论】:

  • 查看 django 文档中的 datetime 小部件,它将是一个文本框。 docs.djangoproject.com/en/1.4/ref/forms/widgets/#datetimeinput 但是您可以研究现代化器以及一些 html5 的东西来获得日期时间选择器。 DatetimeField 只是一个类,它允许对数据进行一些验证并拥有一个对象来做有趣的编程工作。
  • 从任何时间选择器中选择怎么样,这个选择器是内置在java脚本中的

标签: javascript django datetime django-templates django-widget


【解决方案1】:

要使用小部件,您应该在模型的表单类中指明小部件是什么:

from django import forms

class MyModelForm(forms.ModelForm):
    timestamp = forms.DateField(widget=forms.DateInput(attrs={'class':'timepicker'}))

如果您在模型中使用 timestamp 属性,它的运行方式就像一个基本的 python 日期时间类,具有许多您可以在其中找到的相同属性。如果时间戳的格式让您感到困扰,您可以查看 django 用于显示时间和日期时间字段的过滤器:https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date

我不确定您为什么需要以特定格式保存时间戳; django 的 datetime 字段非常健壮且易于使用。

【讨论】:

  • 我尝试使用您给定的代码,但它显示了一个文本框。我想要的是,如果用户不知道格式,那么他将如何输入时间。在数据库中?
  • @AmitPal 嘿,Amit,别忘了在你的模板中添加这个 js 代码:` jQuery(document).ready(function(){ jQuery('.timepicker').datepicker(); });`
  • @AmitPal 显然你也需要导入那个 jquery 小部件 jquery 文件
猜你喜欢
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 2012-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多