我正在尝试将DateTimeWidget
和Initial值添加到我的模型的due_date字段中,我正按照文档尽可能详细地说明。无论我尝试什么,我都无法在我的ModelForm
类中声明的字段覆盖模型中的现有字段。
https://docs.djangoproject.com/en/1.9/topics/forms/modelforms/#overriding-the-default-fields
如果我单独添加一个Widget它可以工作,但是我不知道如何添加初始值,除非我在模型中设置默认值。有人可以指出我做错了吗?
from django import forms
import datetime
from datetimewidget.widgets import DateTimeWidget
from .models import EstRequest
def due_date():
due_date = (datetime.datetime.now() + datetime.timedelta(days=1))
return due_date
class EstRequestModelForm(forms.ModelForm):
class Meta:
model = EstRequest
due_date = forms.SplitDateTimeField(widget=forms.SplitDateTimeWidget, initial=due_date)
fields = [
'market',
'plan',
'builder',
'due_date',
'notes',
]
# widgets = {
# # Use localization and bootstrap 3
# 'due_date': DateTimeWidget(attrs={'id': "due_date"}, usel10n=True, bootstrap_version=3)
# }
答案 0 :(得分:6)
事实上,你是在错误的地方定义该字段,它应该在Meta
类之外:
class EstRequestModelForm(forms.ModelForm):
due_date = forms.DateTimeField(widget=forms.DateTimeInput, initial=due_date)
class Meta:
model = EstRequest
fields = [
'market',
'plan',
'builder',
'due_date',
'notes',
]