Django daterangefield在一个表单中

3lxsmp7m  于 2023-05-08  发布在  Go
关注(0)|答案(1)|浏览(119)

我有一个这样的模型:

models.py

class CommissionElection(models.Model):
    electable_time = DateRangeField()

我的表单看起来像这样:

forms.py

class CreateCommissionElection(forms.ModelForm):
    class Meta:
            model = CommissionElection
            fields = ['electable_time',]

现在的可选举时间显示如下:

需要什么小部件来使字段成为日期字段而不是字符字段,以便您可以从日历中选择日期而不是将其写出来?

vatpfxk5

vatpfxk51#

您可以为date字段指定不同的小部件:

from django.forms.widgets import DateInput

class MyDateInput(DateInput):
    input_type = 'date'

接下来,我们可以创建一个表单DateField字段:

from django.forms.fields import DateField

class MyDateField(DateField):
    widget = MyDateInput

并在DateRangeField中重用它:

from django.contrib.postgres.forms.ranges import DateRangeField

class MyDateRangeField(DateRangeField):
    base_field = MyDateField

我们可以使用这个字段:

class CreateCommissionElection(forms.ModelForm):
    electable_time = MyDateRangeField()

    class Meta:
        model = CommissionElection
        fields = [
            'electable_time',
        ]

相关问题