如何为Django中的日期和时间字段创建选择选项卡?

2024-06-25 06:14:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经看过了DateField,TimeField,DateTimeField的相关文档,但是我似乎找不到我需要的东西。我只想有一个月,日,年,小时,分钟,(AM/PM)类型的选择。我尝试过使用“choice=”,但是没有得到我想要的好的行为。在

**TL;DR:我只需要一种不必输入日期和时间的方法。我想要一份不错的下拉菜单**

class Event(models.Model): 

     event_name  = models.CharField(max_length = 50)    

     date_time   = models.DateTimeField()

     date        = models.DateField()

     location    = models.CharField(max_length = 30)

     address     = models.CharField(max_length = 30)

     city        = models.CharField(max_length = 30)

     zip_code    = models.CharField(max_length = 30)

     state       = models.CharField(max_length = 30)

     description = models.TextField()



     def __unicode__(self):

            return self.event_name



class EventForm(ModelForm):

      class Meta:

         model = Event

这就是我目前所拥有的。我已经删除了选择部分,我甚至尝试制作我自己的模型对象专用于日期和时间,但这并不顺利

我试过用这个。。。在

^{pr2}$

但我没有得到我想要的正确行为。在


Tags: name文档selfeventdatemodels时间length
3条回答

您可以使用datepicker plagin作为Erfin提到的(我也推荐它,也可以使用datepicker for bootstrap)表示日期,masked input表示时间或只是简单的选择。无论如何,您应该发送一个包含日期时间信息的请求。在django做什么:

如果您使用datepicker插件来显示日期,并将掩码输入用于time

假设您的请求是POST。日期将是一个字符串,其格式由javascript指定。看起来像“2013年1月31日”。时间会像“22:30”。在

def write_datetime(request):
    event = Event.objects.get(id=int(request.POST.get('id')))
    from datetime.datetime import strptime
    date = request.POST.get('date')
    time = request.POST.get('time')
    date_time = date + " " + time
    event.date_time = strptime(date_time, "%d.%m.%y %H:%M"
    event.save()

如果只使用selects

在本例中,从请求参数生成一个日期时间字符串并重复前面的示例就更简单了。在

^{pr2}$

您一定要使用this snippet。除非你是一个django忍者,并且想卷起你自己的多窗口小部件,否则你需要将一组选择的输入转换成一个datetime值。在

这个小部件是您最接近的,不使用任何js插件。在

您可能会对使用jquery日期选择器或jquery日期时间选择器感兴趣。在

http://jqueryui.com/datepicker/

http://trentrichardson.com/examples/timepicker/

在这两个网站上都有示例,因此您可以看到它的实际操作:)

相关问题 更多 >