以前は、モデルに個別の時間フィールドと日付フィールドがありましたが、タイムゾーンの問題により、1 つの DateTime フィールドに結合しようとしています。
class Conversation(models.Model):
conversation_datetime = models.DateTimeField()
私のフォームでは、それぞれの日時を抽出するために、時間用と日付用の 2 つの新しいフィールドを作成しました。
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)
ただし、私のテンプレートではフィールドがレンダリングされません。の 2 行をコメント アウトすると__init__
、完全にレンダリングされます。ここで何が問題なのですか?
# self.fields['conversation_date'] = self.instance.conversation_datetime.date()
# self.fields['conversation_time'] = self.instance.conversation_datetime.time()