【问题标题】:displaying both date and time inputs from DateTImeField - Django显示来自 DateTImeField 的日期和时间输入 - Django
【发布时间】:2018-05-25 13:21:19
【问题描述】:

我有一个 django 模板和一个表单,我希望用户在其中输入日期和时间到正确的字段中,并将日期和时间保存到数据库中。我还想在创建表单时初始化一个特定时间。我目前在我的模型和表单中有日期时间字段,但我不知道如何让它同时显示时间和日期。到目前为止,它只显示默认日期。这是我现在拥有的代码。

型号:

class Event(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    calendar = models.ForeignKey(Calender, on_delete=models.CASCADE)
    name = models.CharField(max_length=30, default='Event')
    start_date = models.DateTimeField(default='1950-01-01')
    end_date = models.DateTimeField(default='1950-01-01')
    email = models.CharField(max_length=40, default='example@example.com')
    location = models.CharField(max_length=40, default='location')
    notes = models.CharField(max_length=200, default='note')
    repeat = models.IntegerField()
    # 0 = no repeat
    # 1 = daily
    # 2 = weekly
    # monthly
    created = models.DateTimeField(auto_now_add=True)

表格:

class CreateEventForm(forms.ModelForm):
    start_date = forms.DateTimeField(
        label='Start',
        widget=forms.widgets.DateInput(attrs={'type':'date'}),
    )
    end_date = forms.DateTimeField(
        label='End',
        widget=forms.widgets.DateInput(attrs={'type':'date'})
    )
    class Meta:
        model = Event
        fields = ['name', 'start_date', 'end_date', 'location', 'notes']

观看次数:

form = CreateCalenderForm()
        parameters = {
            'form':form,
        }
        return render(request, 'calender/create_calender.html', parameters)

这是它的样子:

【问题讨论】:

  • 我知道有一个时间字段,但是有什么方法可以让我将日期和时间输入显示为来自 DateTimeField 的一个大输入。如果可以的话,我宁愿一个字段超过两个不同的字段......@guillermochamorro

标签: django django-models django-forms django-views


【解决方案1】:

在您的小部件中使用 DateTimeInput 而不是 DateInput。

widget=forms.widgets.DateTimeInput(attrs={'type':'date'})

【讨论】:

猜你喜欢
  • 2015-08-09
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 2021-05-28
  • 2014-03-28
  • 2019-08-06
  • 2023-03-20
  • 2016-10-21
相关资源
最近更新 更多