SplitDateTime 字段和模型中带有日期时间字段的小部件

Apo*_*los 5 django datetime internationalization

我在 django 中有一个带有日期时间字段的模型。

class Entry(models.Model):
    start = models.DateTimeField()
    end = models.DateTimeField()
Run Code Online (Sandbox Code Playgroud)

以及上述模型的模型形式

class EntryAddForm(ModelForm):

    class Meta:
        model = Entry
        exclude = ('creator','canceled', 'reason',)
        widgets = {
            'start': TextInput(attrs={'class': 'form-control input-append date',
                                      'id':'datetimepicker1'}),
            'end': TextInput(attrs={'class': 'form-control input-append date',
                                    'id':'datetimepicker2'}),
            'title': TextInput(attrs={'class': 'form-control'}),
            'snippet': TextInput(attrs={'class': 'form-control'}),
            'body':Textarea(attrs={'class': 'form-control'}),
            'customer': Select(attrs={'class':'form-control selectpicker',
                                      'data-live-search':'true'})

        }
Run Code Online (Sandbox Code Playgroud)

我跑到 SplitDateTime 字段...并说...哇这就是我想要的。我希望用户能够单独输入日期和时间,但在后端始终有一个了解时区的日期时间字段。所以我尝试了这个。

'start': SplitDateTimeWidget(attrs = {'class':'form-control input-append date'
                                      'id': datetimepicker1'}),
Run Code Online (Sandbox Code Playgroud)

结束场也是如此。但我得到的是两个相互粘在一起的字段,并且只有一个标签。我找不到关于 MultiWidgets 的好文档或教程。我想做的是:

  • 每个小部件都有单独的标签(如开始日期开始时间、结束日期、结束时间)
  • 为每个类添加不同的特定类(日期和时间字段)

这个小部件可以吗?是否最好创建四个表单字段(开始日期、开始时间、结束日期、结束时间)并在构造函数上为它们分配开始和结束字段的值,然后覆盖保存以从这四个字段“构造”日期时间字段?我需要日期时间感知对象来实现国际化。搜索网络但找不到最佳实践

Ane*_*pic 1

我认为应该可以用 MultiWidget 做你想做的事情...虽然从 Django 的角度来看,该字段只有一个标签,但没有什么可以阻止你在小部件的 html 输出中添加任何内容。

也可以看看:

如何使用 Django 的 MultiWidget?

http://bradmontgomery.blogspot.co.uk/2008/11/extending-djangos-multiwidget.html