2013-10-10 16 views
2

我在檢索日期時間列時遇到問題。 model.field返回None而不是返回正確的日期時間。Django 1.5.4 - sqlite datetime - model.datetimeField返回無

該模型,CustomerPeriod定義如下:

class CustomerPeriod(models.Model): 
    id = models.DecimalField(primary_key=True, decimal_places=0, max_digits=22) 
    customer_id = models.ForeignKey(Customer) 
    begin_date = models.DateTimeField() 
    end_date = models.DateTimeField() 

如作爲例子,該表被填充,如下:

customer_period = CustomerPeriod() 
customer_period.id = Decimal('1118632') 
customer_period.customer_id = 1 
customer_period.begin_date = datetime.datetime(2008, 8, 15, 5, 0) 
customer_period.end_date = datetime.datetime(2008, 8, 15, 6, 0) 

customer_period.save() 

現在,試圖獲取BEGIN_DATE字段的值,返回null而不是預期的日期,如上面填充。

CustomerPeriod.objects.all()[0].begin_date

回報無???!

此外,我可以在數據庫瀏覽器中看到預期的數據。

在此先感謝您的幫助。

版本:

  • SQLITE3 3.7.12
  • 的Python 2.7.4
  • 的Django 1.5.4

斯圖爾特

+0

'CustomerPeriod.objects.get(id = 1).begin_date'給你什麼? – karthikr

+0

CustomerPeriod.objects.get(id = 1).begin_date返回無。 – Stewart

+0

嗡嗡聲,多數民衆贊成在奇怪的,我不能再現你的問題。當字段填充了像datetime.datetime.now()這樣的自動化數據時,它仍然出現嗎? –

回答

3

不知道這是否仍是懸而未決,但我自己處理這個問題。你需要確保sqlite db的列類型是datetime。如果它只是日期而不是返回None,當你試圖用python把它拉出來。如果這個表已經存在並且重新同步,那就放棄它。

+0

發現 - 它也給我帶來了麻煩! – mdurant