以前我的模型中有一个单独的时间字段和一个日期字段,由于时区问题,我现在正试图将它们加入一个日期时间字段。
class Conversation(models.Model):
conversation_datetime = models.DateTimeField()
在我的表单中,我创建了两个新字段,一个用于时间,另一个用于日期,以便相应地提取每个字段中的日期时间。
class CallsForm(ModelForm):
conversation_date = forms.DateField(localize=True, widget=forms.DateInput())
conversation_time = forms.TimeField(localize=True, widget=forms.TimeInput())
def __init__(self, *args, **kwargs):
super(CallsForm, self).__init__(*args, **kwargs)
self.fields['conversation_date'] = self.instance.conversation_datetime.date()
self.fields['conversation_time'] = self.instance.conversation_datetime.time()
在我看来,我只是传入实例:
call = Conversation(conversation_datetime = datetime.datetime.utcnow().replace(tzinfo=utc))
form = CallsForm(instance=call)
但是在我的模板中,字段不会被渲染。如果我注释掉 中的两行__init__
,它就会完美呈现。这里有什么问题?
# self.fields['conversation_date'] = self.instance.conversation_datetime.date()
# self.fields['conversation_time'] = self.instance.conversation_datetime.time()