2012-08-29 20 views
0

以前我在我的模型中有一個單獨的時間字段和一個日期字段,我現在試圖加入到一個DateTime字段中,由於時區問題。如何用數據提供非綁定表單域?

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() 

回答

1

您覆蓋您的表單域。可能你想要設置初始值:

self.fields['conversation_date'].initial = self.instance.conversation_datetime.date() 
self.fields['conversation_time'].initial = self.instance.conversation_datetime.time() 
+0

哦,親愛的。學過的知識。謝謝 :) – Houman

相關問題